[英]Check the Validity of x264 Nal Units
我正在使用x264编码器api ,对于每个编码的图片,我都会得到许多nal单位。 有什么方法可以检查VS2010调试器中的nals是否有效。 目前,我可以看到以下信息:
i_ref_idc -858993460
i_type -858993460
b_long_startcode -858993460
i_first_mb -858993460
i_last_mb -858993460
i_payload 27
p_payload 0x06b94d68
i_padding -858993460
我不确定这些负值是否表示nals无效或缺少信息。
基本上,我如何检查从x264_encoder_encode()获得的nals是有效的nal单位?
注意 ::我使用这些信号通过LIVE555进行实时直播。
-858993460
也称为0xСССССССС
,它指示值未由编码器初始化。
i_payload
和p_payload
是有效载荷的大小(以字节为单位)和指向数据的指针。 除了将数据馈送到解码器并针对输出和解码错误的可用性进行测试之外,基本上没有针对此数据的有效性检查。
这绝对是无效的。 您不能确定nalu是否在不解析整个内容的情况下100%有效。 但是您可以理智地检查值。
i_ref_idc是一个2位字段。 0-3范围以外的任何内容都不是理智的。
i_type是5位。 但实际上,编码器只会产生1-15或19-21(含)值
b_long_startcode是布尔值,因此您无法理智地检查它
i_first_mb和i_last_mb小于ceil(width/8.0) * ceil(height/8.0)
i_payload是数据p_payload指向的大小,因此请在此处选择较高的值。 10*with*height
高就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.