我是靠谱客的博主 含糊大米,最近开发中收集的这篇文章主要介绍Gstreamer/Deepstream 多输入源输入,打开失败源判断,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当使用uridecodebin插件打开多输入源时,发现在打开任一源失败时,在消息监听回调会返回GST_MESSAGE_ERROR错误消息从而退出管道,详细错误信息是

gstrtspsrc.c(7469): gst_rtspsrc_retrieve_sdp (): /GstPipeline:StreamTogetherProcess/GstBin:decode-bin-1/GstURIDecodeBin:uri-decode-bin1/GstRTSPSrc:source:Failed to connect. (Generic error)
初衷是想通过返回错误消息携带的GstMessage * msg中 GstObject   *src的对象名src->name来确定是哪个流打开失败,但是通过打印发现每一个对象名都是source完全相同,很无奈。

但是GstRTSPSrc:source这个element对象是在uridecodebin插件中动态创建的,我甚至想在动态创建后对这个对象重新设置name属性,但是更改无效。

最后发现可以通过GstRTSPSrc:source父类parent属性的name来确定哪一个数据源打开失败。

如下:

case GST_MESSAGE_ERROR:
	{
		gchar *debug;
		GError *error;
		gst_message_parse_error(msg, &error, &debug);
		dzlog_error("element :%s,element parent:%s,message:%s", msg->src->name, msg->src->parent->name,error->message);
		if (debug)
			dzlog_error("Error details: %sn", debug);
		g_free(debug);
		g_error_free(error);
		g_main_loop_quit(loop);
		break;
	}

打印结果如下:

[2022-05-16 11:10:00.179][INFO ][AIStreamTask.cpp:969]Decodebin child added:source

[2022-05-16 11:10:00.180][INFO ][AIStreamTask.cpp:969]Decodebin child added:source

[2022-05-16 11:10:00.183][INFO ][AIStreamTask.cpp:796]Running...

[2022-05-16 11:10:00.250][ERROR ][AIStreamTask.cpp:909]element:source,element parent:uri-decode-bin1,message:Could not open resource for reading and writing.
[2022-05-16 11:10:00.250][ERROR][AIStreamTask.cpp:911]Error details: gstrtspsrc.c(7469): gst_rtspsrc_retrieve_sdp (): /GstPipeline:StreamTogetherProcess/GstBin:decode-bin-1/GstURIDecodeBin:uri-decode-bin1/GstRTSPSrc:source:
Failed to connect. (Generic error)

我们可以看到这个uri-decode-bin1里面的数字1就是源ID这个是自己定义的这个是在:

g_snprintf(bin_name, 32, "uri-decode-bin%d", nStreamID);
    dzlog_info("bin_name:%s", bin_name);
    uri_decode_bin = gst_element_factory_make("uridecodebin", bin_name);

时添加进去的。接下来我们就可以根据这个流ID进行相关元件的gst_bin_remove操作了。

最后

以上就是含糊大米为你收集整理的Gstreamer/Deepstream 多输入源输入,打开失败源判断的全部内容,希望文章能够帮你解决Gstreamer/Deepstream 多输入源输入,打开失败源判断所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部