From: Carl Hetherington Date: Wed, 14 Oct 2020 19:24:57 +0000 (+0200) Subject: Don't crash if the first packet in a stream has AV_NOPTS_VALUE; X-Git-Tag: v2.15.104~22 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=d7a3d94ec307a03ebe3fcf239ba991e9a3c1b8b8 Don't crash if the first packet in a stream has AV_NOPTS_VALUE; instead, assume it should be at timestamp 0. --- diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 79fce3027..3c0f48804 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -469,12 +469,14 @@ DCPOMATIC_DISABLE_WARNINGS shared_ptr data = deinterleave_audio (*stream); ContentTime ct; - if (_frame->pts == AV_NOPTS_VALUE && _next_time[stream_index]) { + if (_frame->pts == AV_NOPTS_VALUE) { /* In some streams we see not every frame coming through with a timestamp; for those that have AV_NOPTS_VALUE we need to work out the timestamp ourselves. This is particularly noticeable with TrueHD streams (see #1111). */ - ct = *_next_time[stream_index]; + if (_next_time[stream_index]) { + ct = *_next_time[stream_index]; + } } else { ct = ContentTime::from_seconds ( av_frame_get_best_effort_timestamp (_frame) *