diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-10-14 21:24:57 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-10-14 21:50:52 +0200 |
| commit | aa072f8b8afdf12a6f55b52cf49059c8d30e301f (patch) | |
| tree | d82a4b7ba7d2bafce8f17174e2f3f6b27398bb71 | |
| parent | 46064e5c8ae074b1328f8dab541322b6fb091275 (diff) | |
Don't crash if the first packet in a stream has AV_NOPTS_VALUE;
instead, assume it should be at timestamp 0.
Backported-from-commit: d7a3d94ec307a03ebe3fcf239ba991e9a3c1b8b8
Backported-from-branch: v2.15.x
| -rw-r--r-- | src/lib/ffmpeg_decoder.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index f5af0628e..69f366aad 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -451,12 +451,14 @@ FFmpegDecoder::decode_audio_packet () shared_ptr<AudioBuffers> 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) * |
