diff --git a/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp b/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp index 0d81a10526..0ac0d9810b 100644 --- a/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp +++ b/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp @@ -453,9 +453,13 @@ bool ADM_coreVideoEncoderFFmpeg::postEncode(ADMBitstream *out, uint32_t size) // Update PTS/Dts if(!_context->max_b_frames) { - out->dts=out->pts=queueOfDts[0]; - mapper.erase(mapper.begin()); - queueOfDts.erase(queueOfDts.begin()); + if(mapper.size()) + mapper.erase(mapper.begin()); + if(queueOfDts.size()) + { + out->dts=out->pts=queueOfDts[0]; + queueOfDts.erase(queueOfDts.begin()); + } } else if(!getRealPtsFromInternal(_context->coded_frame->pts,&(out->dts),&(out->pts))) return false;