C++ gst\u rtsp\u服务器未停止

C++ gst\u rtsp\u服务器未停止,c++,multithreading,c++11,gstreamer,rtsp,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_

我正在尝试制作一个小小的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);

流停止,但当我尝试初始化并再次启动流时,它不会启动。

是否重新创建所需的对象?你说它没有启动是什么意思?你重新创建了所需的对象吗?你说它没有开始是什么意思?