From aff9963f9505d6fc61e64c5298e87361ef4ef2a6 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 12 Sep 2020 19:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=9F=90=E4=BA=9B=E5=A4=9A?= =?UTF-8?q?=E5=B8=A7=E7=B2=98=E5=90=88=E5=9C=A8=E4=B8=80=E8=B5=B7=E7=9A=84?= =?UTF-8?q?=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Extension/H264.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Extension/H264.h b/src/Extension/H264.h index 16672a33..02eba813 100644 --- a/src/Extension/H264.h +++ b/src/Extension/H264.h @@ -35,6 +35,7 @@ public: NAL_SPS = 7, NAL_PPS = 8, NAL_AUD = 9, + NAL_B_P = 1, } NalType; H264Frame(){ @@ -180,9 +181,8 @@ public: */ void inputFrame(const Frame::Ptr &frame) override{ int type = H264_TYPE(*((uint8_t *)frame->data() + frame->prefixSize())); - if(type == H264Frame::NAL_SPS || type == H264Frame::NAL_PPS || type == H264Frame::NAL_SEI || - type == H264Frame::NAL_AUD){ - //有些设备会把SPS PPS IDR帧当做一个帧打包,所以我们要split一下 + if(type != H264Frame::NAL_B_P && type != H264Frame::NAL_IDR){ + //非I/B/P帧情况下,split一下,防止多个帧粘合在一起 splitH264(frame->data(), frame->size(), frame->prefixSize(), [&](const char *ptr, int len, int prefix) { H264FrameInternal::Ptr sub_frame = std::make_shared(frame, (char *)ptr, len, prefix); inputFrame_l(sub_frame); @@ -332,4 +332,4 @@ private: }; }//namespace mediakit -#endif //ZLMEDIAKIT_H264_H +#endif //ZLMEDIAKIT_H264_H \ No newline at end of file