修复过滤多余帧类型导致的bug

This commit is contained in:
xiongziliang 2019-12-13 15:42:58 +08:00
parent bd8a9a78e8
commit 6e59000265
2 changed files with 30 additions and 43 deletions

View File

@ -49,7 +49,6 @@ public:
NAL_SPS = 7,
NAL_PPS = 8,
NAL_IDR = 5,
NAL_B_P = 1
} NalType;
char *data() const override{
@ -315,18 +314,15 @@ private:
//I
insertConfigFrame(frame);
VideoTrack::inputFrame(frame);
_last_frame_is_idr = true;
}
break;
case H264Frame::NAL_B_P:{
//B or P
default:
VideoTrack::inputFrame(frame);
_last_frame_is_idr = false;
}
break;
}
_last_frame_is_idr = type == H264Frame::NAL_IDR;
if(_width == 0 && ready()){
onReady();
}

View File

@ -144,9 +144,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
}
}
switch (type){
case H264Frame::NAL_IDR:
case H264Frame::NAL_B_P:{
if(_lastPacket && _lastPacket->timeStamp != frame->stamp()) {
RtmpCodec::inputRtmp(_lastPacket, _lastPacket->isVideoKeyFrame());
_lastPacket = nullptr;
@ -176,12 +173,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
_lastPacket->strBuf.append((char *) &size, 4);
_lastPacket->strBuf.append(pcData, iLen);
_lastPacket->bodySize = _lastPacket->strBuf.size();
}
break;
default:
break;
}
}