TheLegace

test-readme

Apr 30th, 2012
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. /* GStreamer
  2.  * Copyright (C) 2008 Wim Taymans <wim.taymans at gmail.com>
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Library General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Library General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Library General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19.  
  20. #include <gst/gst.h>
  21.  
  22. #include <gst/rtsp-server/rtsp-server.h>
  23.  
  24. int
  25. main (int argc, char *argv[])
  26. {
  27.   GMainLoop *loop;
  28.   GstRTSPServer *server;
  29.   GstRTSPMediaMapping *mapping;
  30.   GstRTSPMediaFactory *factory;
  31.  
  32.   gst_init (&argc, &argv);
  33.  
  34.   loop = g_main_loop_new (NULL, FALSE);
  35.  
  36.   /* create a server instance */
  37.   server = gst_rtsp_server_new ();
  38.  
  39.   /* get the mapping for this server, every server has a default mapper object
  40.    * that be used to map uri mount points to media factories */
  41.   mapping = gst_rtsp_server_get_media_mapping (server);
  42.  
  43.   /* make a media factory for a test stream. The default media factory can use
  44.    * gst-launch syntax to create pipelines.
  45.    * any launch line works as long as it contains elements named pay%d. Each
  46.    * element with pay%d names will be a stream */
  47.   factory = gst_rtsp_media_factory_new ();
  48.   gst_rtsp_media_factory_set_launch (factory,
  49.       "( v4l2src ! video/x-h264,width=800,height=600,framerate=30/1 ! rtph264pay name=pay0 pt=96 )");
  50.  
  51.   gst_rtsp_media_factory_set_shared (factory, TRUE);
  52.  
  53.   /* attach the test factory to the /test url */
  54.   gst_rtsp_media_mapping_add_factory (mapping, "/test", factory);
  55.  
  56.   /* don't need the ref to the mapper anymore */
  57.   g_object_unref (mapping);
  58.  
  59.   /* attach the server to the default maincontext */
  60.   gst_rtsp_server_attach (server, NULL);
  61.  
  62.   /* start serving */
  63.   g_print ("stream ready at rtsp://127.0.0.1:8554/test\n");
  64.   g_main_loop_run (loop);
  65.  
  66.   return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment