From 68da7c2fb7891cbaa5153faff1dc8f2924bb886f Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 17 Nov 2018 16:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AAhls?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E4=B8=80=E4=B8=AAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MediaFile/HLSMaker.cpp | 6 +++++- src/MediaFile/HLSMaker.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/MediaFile/HLSMaker.cpp b/src/MediaFile/HLSMaker.cpp index 177bfb0c..39461a15 100644 --- a/src/MediaFile/HLSMaker.cpp +++ b/src/MediaFile/HLSMaker.cpp @@ -160,7 +160,9 @@ void HLSMaker::inputH264(void *data, uint32_t length, uint32_t timeStamp) { } case H264Frame::NAL_B_P: //P //insert aud frame before p and SPS frame - _ts.inputH264("\x0\x0\x0\x1\x9\xf0", 6, timeStamp * 90); + if(timeStamp != _ui32LastFrameStamp){ + _ts.inputH264("\x0\x0\x0\x1\x9\xf0", 6, timeStamp * 90); + } case H264Frame::NAL_IDR: //IDR case H264Frame::NAL_PPS: //PPS _ts.inputH264((char *) data, length, timeStamp * 90); @@ -168,6 +170,8 @@ void HLSMaker::inputH264(void *data, uint32_t length, uint32_t timeStamp) { default: break; } + + _ui32LastFrameStamp = timeStamp; } void HLSMaker::inputAAC(void *data, uint32_t length, uint32_t timeStamp) { diff --git a/src/MediaFile/HLSMaker.h b/src/MediaFile/HLSMaker.h index 80ba6ccb..3cb6a9c9 100644 --- a/src/MediaFile/HLSMaker.h +++ b/src/MediaFile/HLSMaker.h @@ -80,6 +80,7 @@ private: uint64_t _ui64TsCnt; uint32_t _ui32BufSize; uint32_t _ui32LastStamp; + uint32_t _ui32LastFrameStamp = 0; std::deque _iDurations;