From 0f3a8f4a9db5cb77148d5308f4352da16946d32d Mon Sep 17 00:00:00 2001 From: xgj Date: Mon, 7 Jun 2021 17:32:28 +0800 Subject: [PATCH] fix webrtc to rtmp multi slice on frame error --- src/Extension/H264Rtmp.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Extension/H264Rtmp.cpp b/src/Extension/H264Rtmp.cpp index ca58472a..b196cb6e 100644 --- a/src/Extension/H264Rtmp.cpp +++ b/src/Extension/H264Rtmp.cpp @@ -183,7 +183,7 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) { } } - if(_lastPacket && (_lastPacket->time_stamp != frame->dts() || type == H264Frame::NAL_B_P)) { + if(_lastPacket && (_lastPacket->time_stamp != frame->dts() || pcData[1]&0x80 != 0)) { RtmpCodec::inputRtmp(_lastPacket); _lastPacket = nullptr; } @@ -214,10 +214,12 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) { _lastPacket->buffer.append((char *) &size, 4); _lastPacket->buffer.append(pcData, iLen); _lastPacket->body_size = _lastPacket->buffer.size(); + /* if (type == H264Frame::NAL_B_P) { RtmpCodec::inputRtmp(_lastPacket); _lastPacket = nullptr; } + */ } void H264RtmpEncoder::makeVideoConfigPkt() {