gst_rtsp_server不会停止

时间:2016-11-04 06:38:51

标签: c++ multithreading c++11 gstreamer rtsp

我正在尝试制作一个微小的cpp程序模块,从相机生成实时流,我使用的是gstreamer1.0,我有插件1.6和gst-rtsp-server-1.6.0。我能够开始流,但当我试图停止并重新开始时,它不会重新开始。 我的管道是:

std_pipeline = "videotestsrc ! video/x-raw  ! "
                     "videoconvert ! x264enc ! rtph264pay"

我正在使用以下函数初始化:

gst_rtsp_server_new();
gst_rtsp_server_get_mount_points(server);
gst_rtsp_media_factory_new();
gst_rtsp_media_factory_set_launch(factory, std_pipeline);
gst_rtsp_mount_points_add_factory(mounts, "/stream", factory);
gst_rtsp_server_attach(server, NULL);

开始流我在另一个线程中调用:

g_main_loop_run(loop);

我试图用以下方法摧毁一切:

GstRTSPSessionPool *pool
gst_rtsp_server_get_session_pool (server);
gst_rtsp_session_pool_filter (pool,
  (GstRTSPSessionPoolFilterFunc) remove_func, server);
g_object_unref (pool);
g_source_remove(server_id);
mounts = gst_rtsp_server_get_mount_points(server);
gst_rtsp_mount_points_remove_factory(mounts, "/stream");
gst_object_unref(mounts);
g_main_loop_quit(loop);

并且流停止,但是当我尝试初始化并再次启动流时,它无法启动。

0 个答案:

没有答案