Commit ce5c71c9 by xiongziliang

完善gop缓存机制,提高秒开率

parent 2a60fc26
...@@ -100,10 +100,11 @@ public: ...@@ -100,10 +100,11 @@ public:
MediaSource::regist(); MediaSource::regist();
_bRegisted = true; _bRegisted = true;
} }
} } else{
_mapStamp[pkt->typeId] = pkt->timeStamp; _mapStamp[pkt->typeId] = pkt->timeStamp;
_pRing->write(pkt,pkt->isVideoKeyFrame()); _pRing->write(pkt,pkt->isVideoKeyFrame());
} }
}
uint32_t getTimeStamp(TrackType trackType) override { uint32_t getTimeStamp(TrackType trackType) override {
lock_guard<recursive_mutex> lock(_mtxMap); lock_guard<recursive_mutex> lock(_mtxMap);
......
...@@ -153,10 +153,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -153,10 +153,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
switch (type){ switch (type){
case 5: case 5:
//在IDR帧之前插入config包
if(_gotSpsPps){
makeVideoConfigPkt();
}
case 1:{ case 1:{
//I or P or B frame //I or P or B frame
int8_t flags = 7; //h.264 int8_t flags = 7; //h.264
...@@ -230,7 +226,7 @@ void H264RtmpEncoder::makeVideoConfigPkt() { ...@@ -230,7 +226,7 @@ void H264RtmpEncoder::makeVideoConfigPkt() {
rtmpPkt->streamId = STREAM_MEDIA; rtmpPkt->streamId = STREAM_MEDIA;
rtmpPkt->timeStamp = 0; rtmpPkt->timeStamp = 0;
rtmpPkt->typeId = MSG_VIDEO; rtmpPkt->typeId = MSG_VIDEO;
RtmpCodec::inputRtmp(rtmpPkt, true); RtmpCodec::inputRtmp(rtmpPkt, false);
} }
......
...@@ -257,7 +257,7 @@ void H264RtpEncoder::makeH264Rtp(const void* data, unsigned int len, bool mark, ...@@ -257,7 +257,7 @@ void H264RtpEncoder::makeH264Rtp(const void* data, unsigned int len, bool mark,
rtppkt->offset = 16; rtppkt->offset = 16;
uint8_t type = ((uint8_t *) (data))[0] & 0x1F; uint8_t type = ((uint8_t *) (data))[0] & 0x1F;
RtpCodec::inputRtp(rtppkt,type == 5); RtpCodec::inputRtp(rtppkt,type == 7);
_ui16Sequence++; _ui16Sequence++;
_ui32TimeStamp = uiStamp; _ui32TimeStamp = uiStamp;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论