diff --git a/ext-codec/H264Rtp.cpp b/ext-codec/H264Rtp.cpp index 1972a040..f7ae195d 100644 --- a/ext-codec/H264Rtp.cpp +++ b/ext-codec/H264Rtp.cpp @@ -184,7 +184,7 @@ void H264RtpDecoder::outputFrame(const RtpPacket::Ptr &rtp, const H264Frame::Ptr _gop_dropped = false; InfoL << "new gop received, rtp:\r\n" << rtp->dumpString(); } - if (!_gop_dropped) { + if (!_gop_dropped || frame->configFrame()) { RtpCodec::inputFrame(frame); } _frame = obtainFrame(); diff --git a/ext-codec/H265Rtp.cpp b/ext-codec/H265Rtp.cpp index 6f05e67f..69690423 100644 --- a/ext-codec/H265Rtp.cpp +++ b/ext-codec/H265Rtp.cpp @@ -240,7 +240,7 @@ void H265RtpDecoder::outputFrame(const RtpPacket::Ptr &rtp, const H265Frame::Ptr _gop_dropped = false; InfoL << "new gop received, rtp:\r\n" << rtp->dumpString(); } - if (!_gop_dropped) { + if (!_gop_dropped || frame->configFrame()) { RtpCodec::inputFrame(frame); } _frame = obtainFrame();