mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 19:00:01 +08:00
兼容时间戳不规范的H265流:#894
This commit is contained in:
parent
24ab876fdb
commit
4d0db1b7c1
@ -169,11 +169,23 @@ bool FrameMerger::willFlush(const Frame::Ptr &frame) const{
|
||||
//时间戳变化了
|
||||
return true;
|
||||
}
|
||||
if (frame->getCodecId() == CodecH264 &&
|
||||
H264_TYPE(frame->data()[frame->prefixSize()]) == H264Frame::NAL_B_P) {
|
||||
switch (frame->getCodecId()) {
|
||||
case CodecH264 : {
|
||||
if (H264_TYPE(frame->data()[frame->prefixSize()]) == H264Frame::NAL_B_P) {
|
||||
//如果是264的b/p帧,那么也刷新输出
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CodecH265 : {
|
||||
if (H265_TYPE(frame->data()[frame->prefixSize()]) == H265Frame::NAL_TRAIL_R) {
|
||||
//如果是265的TRAIL_R帧,那么也刷新输出
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default : break;
|
||||
}
|
||||
return _frameCached.size() > kMaxFrameCacheSize;
|
||||
}
|
||||
default: /*不可达*/ assert(0); return true;
|
||||
|
@ -169,7 +169,7 @@ void H265RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(_lastPacket && _lastPacket->time_stamp != frame->dts()) {
|
||||
if (_lastPacket && (_lastPacket->time_stamp != frame->dts() || type == H265Frame::NAL_TRAIL_R)) {
|
||||
RtmpCodec::inputRtmp(_lastPacket);
|
||||
_lastPacket = nullptr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user