通过 rtpgstdepay 事件字符串的消息传输不是 0 终止
Message Transmission through rtpgstdepay event string not 0 terminated
当我使用 rtpgstdepay 支付负载时,我收到警告消息
event string is not 0 terminated.
如何解决这个问题?
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
在 rtpgstdepay caps 中,对于新版本,事件字符串应该以“0 字节字符 (\0)”结尾。对于旧版本,它应该以“;(分号)”结尾。
如果事件字符串未正确终止,则会出现 'event string not 0-terminated' 警告消息。
添加此条件是为了解决缓冲区过度读取问题,并确保我们不会读取超过缓冲区末尾的字符串。
兼容性矩阵如下:
- 旧支付 -> 旧支付:
没有变化,升级核心不会在某些格式错误的情况下崩溃
输入。
- 旧支付 -> 新支付:
新的 depay 发现;最后并解析消息。核心变化没有
事.
- 新支付 -> 旧支付:
新的 depay 在字符串后面加上额外的 0。旧的 depay 只是解析并跳过
额外的 0 字节(因为它包含在长度中)。有了新芯,一定
格式错误的有效负载不会崩溃。
- 新支付 -> 新支付:
new pay在字符串后加0,new depay检查0并解码。新的
核心将避免某些缓冲区重读。
通过使用 rtpgstpay 和 rtpgstdepay 组件,我成功地通过 udp over rtp 传输了修改后的缓冲区。
在接收端,
在 udpsrc caps 中,我在 G_TYPE_STRING.
类型的 caps 中添加了 caps 事件字符串
当我使用 -v 选项启动此管道时,获取了 caps 事件字符串。
我的 C 代码的 udpsrc 上限 属性 中使用了该事件字符串。
当我使用 rtpgstdepay 支付负载时,我收到警告消息
event string is not 0 terminated.
如何解决这个问题?
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
在 rtpgstdepay caps 中,对于新版本,事件字符串应该以“0 字节字符 (\0)”结尾。对于旧版本,它应该以“;(分号)”结尾。
如果事件字符串未正确终止,则会出现 'event string not 0-terminated' 警告消息。
添加此条件是为了解决缓冲区过度读取问题,并确保我们不会读取超过缓冲区末尾的字符串。
兼容性矩阵如下:
- 旧支付 -> 旧支付:
没有变化,升级核心不会在某些格式错误的情况下崩溃 输入。
- 旧支付 -> 新支付:
新的 depay 发现;最后并解析消息。核心变化没有 事.
- 新支付 -> 旧支付:
新的 depay 在字符串后面加上额外的 0。旧的 depay 只是解析并跳过 额外的 0 字节(因为它包含在长度中)。有了新芯,一定 格式错误的有效负载不会崩溃。
- 新支付 -> 新支付:
new pay在字符串后加0,new depay检查0并解码。新的 核心将避免某些缓冲区重读。
通过使用 rtpgstpay 和 rtpgstdepay 组件,我成功地通过 udp over rtp 传输了修改后的缓冲区。
在接收端,
在 udpsrc caps 中,我在 G_TYPE_STRING.
类型的 caps 中添加了 caps 事件字符串当我使用 -v 选项启动此管道时,获取了 caps 事件字符串。
我的 C 代码的 udpsrc 上限 属性 中使用了该事件字符串。