TheLegace

omap4-test-readme.c

May 9th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.60 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. #include <string.h>
  22. #include <stdio.h>
  23.  
  24. #include <gst/rtsp-server/rtsp-server.h>
  25.  
  26. int
  27. main (int argc, char *argv[])
  28. {
  29.     GMainLoop *loop;
  30.     GstRTSPServer *server;
  31.     GstRTSPMediaMapping *mapping;
  32.     GstRTSPMediaFactory *factory;
  33.     char gstString[300];
  34.     int n = sprintf(gstString, "( v4l2src device=%s ! video/x-raw-yuv, width=640, height=480,framerate=30/1 ! queue ! ffmpegcolorspace ! ducatih264enc ! rtph264pay name=pay0 pt=96 )", argv[1]);
  35.     gst_init (&argc, &argv);
  36.    
  37.     //~ if(strstr(argv[1], "/dev/video"))
  38.         //~ printf("found");
  39.    
  40.     loop = g_main_loop_new (NULL, FALSE);
  41.  
  42.     /* create a server instance */
  43.     server = gst_rtsp_server_new ();
  44.  
  45.     /* get the mapping for this server, every server has a default mapper object
  46.     * that be used to map uri mount points to media factories */
  47.     mapping = gst_rtsp_server_get_media_mapping (server);
  48.  
  49.     /* make a media factory for a test stream. The default media factory can use
  50.     * gst-launch syntax to create pipelines.
  51.     * any launch line works as long as it contains elements named pay%d. Each
  52.     * element with pay%d names will be a stream */
  53.    
  54.     factory = gst_rtsp_media_factory_new ();
  55.     gst_rtsp_media_factory_set_launch (factory, gstString);
  56.         //~ "( v4l2src device=/dev/video1 ! x264enc ! rtph264pay name=pay0 pt=96 )");
  57.  
  58.     gst_rtsp_media_factory_set_shared (factory, TRUE);
  59.  
  60.     /* attach the test factory to the /test url */
  61.     gst_rtsp_media_mapping_add_factory (mapping, "/test", factory);
  62.    
  63.     /* set the port to the input argv[2] */
  64.     gst_rtsp_server_set_service(server, argv[2]);
  65.  
  66.     /* don't need the ref to the mapper anymore */
  67.     g_object_unref (mapping);
  68.  
  69.     /* attach the server to the default maincontext */
  70.     gst_rtsp_server_attach (server, NULL);
  71.  
  72.     /* start serving */
  73.     g_main_loop_run (loop);
  74.  
  75.     return 0;
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment