Commit 6e590002 by xiongziliang

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

parent bd8a9a78
...@@ -49,7 +49,6 @@ public: ...@@ -49,7 +49,6 @@ public:
NAL_SPS = 7, NAL_SPS = 7,
NAL_PPS = 8, NAL_PPS = 8,
NAL_IDR = 5, NAL_IDR = 5,
NAL_B_P = 1
} NalType; } NalType;
char *data() const override{ char *data() const override{
...@@ -315,18 +314,15 @@ private: ...@@ -315,18 +314,15 @@ private:
//I //I
insertConfigFrame(frame); insertConfigFrame(frame);
VideoTrack::inputFrame(frame); VideoTrack::inputFrame(frame);
_last_frame_is_idr = true;
} }
break; break;
case H264Frame::NAL_B_P:{ default:
//B or P
VideoTrack::inputFrame(frame); VideoTrack::inputFrame(frame);
_last_frame_is_idr = false;
}
break; break;
} }
_last_frame_is_idr = type == H264Frame::NAL_IDR;
if(_width == 0 && ready()){ if(_width == 0 && ready()){
onReady(); onReady();
} }
......
...@@ -144,9 +144,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -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()) { if(_lastPacket && _lastPacket->timeStamp != frame->stamp()) {
RtmpCodec::inputRtmp(_lastPacket, _lastPacket->isVideoKeyFrame()); RtmpCodec::inputRtmp(_lastPacket, _lastPacket->isVideoKeyFrame());
_lastPacket = nullptr; _lastPacket = nullptr;
...@@ -176,12 +173,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -176,12 +173,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
_lastPacket->strBuf.append((char *) &size, 4); _lastPacket->strBuf.append((char *) &size, 4);
_lastPacket->strBuf.append(pcData, iLen); _lastPacket->strBuf.append(pcData, iLen);
_lastPacket->bodySize = _lastPacket->strBuf.size(); _lastPacket->bodySize = _lastPacket->strBuf.size();
}
break;
default:
break;
}
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论