From ecddd0e7b0cd4645fdc0fa565928b547b925e840 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 1 Feb 2018 22:54:50 +0000 Subject: [PATCH] Don't select video streams for which we have no codec; warn in log about streams with no codec (#1184). --- ChangeLog | 2 ++ src/lib/ffmpeg.cc | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 572d61251..029066de3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2018-02-01 Carl Hetherington + * Don't try to use video streams for which we have no codec (#1184). + * Updated nl_NL translation from Rob van Nieuwkerk. * Version 2.11.47 released. diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc index 2038d6a85..ac179e1d6 100644 --- a/src/lib/ffmpeg.cc +++ b/src/lib/ffmpeg.cc @@ -144,7 +144,7 @@ FFmpeg::setup_general () for (uint32_t i = 0; i < _format_context->nb_streams; ++i) { AVStream* s = _format_context->streams[i]; - if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO) { + if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO && avcodec_find_decoder(s->codec->codec_id)) { if (s->avg_frame_rate.num > 0 && s->avg_frame_rate.den > 0) { /* This is definitely our video stream */ _video_stream = i; @@ -215,9 +215,12 @@ FFmpeg::setup_decoders () if (avcodec_open2 (context, codec, &options) < 0) { throw DecodeError (N_("could not open decoder")); } + } else { + shared_ptr log = _ffmpeg_log.lock (); + if (log) { + log->log (String::compose ("No codec found for stream %1", i), LogEntry::TYPE_WARNING); + } } - - /* We are silently ignoring any failures to find suitable decoders here */ } } -- 2.30.2