Commit b580d6c7 by xia-chu

修复判断是否为增强型rtmp协议相关bug

有符合整型右移7位可能为-1(而不是1)
这样将导致在处理增强型rtmp时,判断关键帧和配置帧失败
parent 3e9a8b9d
......@@ -157,7 +157,7 @@ bool RtmpPacket::isVideoKeyFrame() const {
return false;
}
RtmpFrameType frame_type;
if (buffer[0] >> 7 == 1) {
if (buffer[0] >> 7) {
// IsExHeader == 1
frame_type = (RtmpFrameType)((buffer[0] >> 4) & 0x07);
} else {
......@@ -176,7 +176,7 @@ bool RtmpPacket::isConfigFrame() const {
if (!isVideoKeyFrame()) {
return false;
}
if (buffer[0] >> 7 == 1) {
if (buffer[0] >> 7) {
// IsExHeader == 1
return (RtmpPacketType)(buffer[0] & 0x0f) == RtmpPacketType::PacketTypeSequenceStart;
}
......@@ -263,7 +263,7 @@ CodecId parseVideoRtmpPacket(const uint8_t *data, size_t size, RtmpPacketInfo *i
info->codec = CodecInvalid;
CHECK(size > 0);
if (data[0] >> 7 == 1) {
if (data[0] >> 7) {
// IsExHeader == 1
CHECK(size >= 5, "Invalid rtmp buffer size: ", size);
info->is_enhanced = true;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论