当我使用rtpgstdepay偿还负载时,我收到警告消息
事件字符串不是0终止。
如何解决此问题?
pipeline : gst-launch-1.0 udpsrc ! queue ! rtpgstdepay ! autovideosink
Warning :: "event string not 0 terminated"
Debug Info :: gstrtpgstdepay.c(331): read_event (): /GstPipeline:Transporter/GstRtpGSTDepay:rtp_depay
答案 0 :(得分:0)
在rtpgstdepay上,对于新版本,事件字符串应以'0字节字符(\ 0)'终止。对于旧版本,它应以';(分号)'终止。
如果事件字符串未正确终止,则会出现'event string not 0-terminated'警告消息。
添加此条件是为了克服修复缓冲区重写问题,并确保我们不会读取超出缓冲区末尾的字符串。
兼容性矩阵如下:
没有变化,升级后的核心不会因某些格式错误而崩溃 输入
新的发现;最后并解析消息。核心变化没有 物质
新的depay在字符串之后添加额外的0。旧的depay只是解析并跳过了 额外的0字节(因为它包含在长度中)。有新核心,肯定 格式错误的有效负载不会崩溃。
新支付在字符串后添加额外的0,新的depay检查0并解码。新 核心将避免某些缓冲区重读。
答案 1 :(得分:0)
使用rtpgstpay& rtpgstdepay组件我通过rtp上的udp成功传输了修改后的缓冲区。
在Receiver结束时,
在udpsrc上限中,我在大写字母中添加了大写字母字符串,其类型为G_TYPE_STRING。
使用-v选项启动此管道时将获取caps事件字符串。
该事件字符串用于我的C代码的udpsrc caps属性。