void gss_server_rtsp_init (GssServer * server) { server->rtsp_server = gst_rtsp_server_new (); if (getuid () == 0) { gst_rtsp_server_set_service (server->rtsp_server, "554"); } else { gst_rtsp_server_set_service (server->rtsp_server, "8554"); } }
static void gst_rtsp_server_set_property (GObject * object, guint propid, const GValue * value, GParamSpec * pspec) { GstRTSPServer *server = GST_RTSP_SERVER (object); switch (propid) { case PROP_ADDRESS: gst_rtsp_server_set_address (server, g_value_get_string (value)); break; case PROP_SERVICE: gst_rtsp_server_set_service (server, g_value_get_string (value)); break; case PROP_BACKLOG: gst_rtsp_server_set_backlog (server, g_value_get_int (value)); break; case PROP_SESSION_POOL: gst_rtsp_server_set_session_pool (server, g_value_get_object (value)); break; case PROP_MEDIA_MAPPING: gst_rtsp_server_set_media_mapping (server, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propid, pspec); } }
void ReStream::ThreadFunc() { try{ loop = g_main_loop_new (NULL, FALSE); //classContext = g_main_context_get_thread_default(); server = gst_rtsp_server_new (); if ( !isLocalStream ) gst_rtsp_server_set_address (server,ipAddress); else gst_rtsp_server_set_address (server,"127.0.0.1"); //gst_rtsp_server_set_service (server, "0"); mounts = gst_rtsp_server_get_mount_points (server); //cout<<"\nin ThreadFunc ---"<<portNo; //gst_rtsp_server_set_service (server,portNo); gst_rtsp_server_set_service (server,portNo); //cout<<"\nin ThreadFunc ---"<<gst_rtsp_server_get_service(server); mounts = gst_rtsp_server_get_mount_points (server); guint attached = gst_rtsp_server_attach (server, NULL); //g_main_context_pop_thread_default(classContext); if(attached){ isServerAttached = true; if ( ISDEBUG ) cout<<"Server Succesfullly attached\n"; g_main_loop_run (loop); }else{ if ( ISDEBUG ) cout<<"Failed to attach the server.Exiting From the Code. Free the port first\n"; exit(0); return; } isServerAttached = false; g_object_unref (mounts); g_object_unref (server); //g_main_loop_unref (loop); } catch(Exception &e){ commclass.PrintException("ReStream","CV::ThreadFunc",e); } catch(exception &e){ commclass.PrintException("ReStream","STD::ThreadFunc",e); } }
static GstRTSPServer * create_rtsp_server (G_GNUC_UNUSED SnraManager * mgr) { GstRTSPServer *server = NULL; server = gst_rtsp_server_new (); gst_rtsp_server_set_service (server, "5458"); /* attach the server to the default maincontext */ if (gst_rtsp_server_attach (server, NULL) == 0) goto failed; /* start serving */ return server; /* ERRORS */ failed: { g_print ("failed to attach the server\n"); gst_object_unref (server); return NULL; } }
int main (int argc, char *argv[]) { GMainLoop *loop; GstRTSPServer *server; GstRTSPMountPoints *mounts; GstRTSPMediaFactory *factory; gst_init (&argc, &argv); if (argc < 1) { g_print ("usage: %s [portnum] \n" "example: %s 8555 \n" "Pipeline is fixed. Default port 8554\n", argv[0], argv[0]); return -1; } loop = g_main_loop_new (NULL, FALSE); //global_clock = gst_system_clock_obtain (); //gst_net_time_provider_new (global_clock, "0.0.0.0", 8554); /* create a server instance */ server = gst_rtsp_server_new (); gint * portnum; portnum = malloc(sizeof(gint)); *portnum = 8554; if (argc == 2) { /* set server listening port*/ gst_rtsp_server_set_service (server,argv[1]); *portnum = atoi(argv[1]); } /* callback for clients */ g_signal_connect (server, "client-connected", G_CALLBACK (client_connection), portnum); /* get the mount points for this server, every server has a default object * that be used to map uri mount points to media factories */ mounts = gst_rtsp_server_get_mount_points (server); /* make a media factory for a test stream. The default media factory can use * gst-launch syntax to create pipelines. * any launch line works as long as it contains elements named pay%d. Each * element with pay%d names will be a stream */ factory = test_rtsp_media_factory_new (); gst_rtsp_media_factory_set_launch (factory, "appsrc name=mysrc ! videoconvert ! x264enc tune=\"zerolatency\" ! rtph264pay pt=96 ! rtpatimetimestamp name=pay0 ntp-offset=0"); g_signal_connect (factory, "media-configure", (GCallback) media_configure, NULL); gst_rtsp_media_factory_set_shared (GST_RTSP_MEDIA_FACTORY (factory), TRUE); gst_rtsp_media_factory_set_media_gtype (GST_RTSP_MEDIA_FACTORY (factory), TEST_TYPE_RTSP_MEDIA); /* attach the test factory to the /test url */ gst_rtsp_mount_points_add_factory (mounts, "/test", factory); /* don't need the ref to the mapper anymore */ g_object_unref (mounts); /* attach the server to the default maincontext */ gst_rtsp_server_attach (server, NULL); /* start serving */ if (argc < 2) g_print ("stream ready at rtsp://127.0.0.1:8554/test\n"); else { g_print ("stream ready at rtsp://127.0.0.1:"); g_print (argv[1]); g_print ("/test\n"); } g_main_loop_run (loop); return 0; }