Don't use video streams with AV_DISPOSITION_ATTACHED_PIC (#2349).
authorCarl Hetherington <cth@carlh.net>
Thu, 4 Jan 2024 22:58:56 +0000 (23:58 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 5 Jan 2024 16:09:05 +0000 (17:09 +0100)
These are seen in MP3 files for cover art.

src/lib/ffmpeg.cc

index a500e8df356fbc05afcb43f4a0066e0e6fb2bcc2..d9df232df3e7535caaa86c59ba90ff655b5b9a44 100644 (file)
@@ -127,7 +127,7 @@ FFmpeg::setup_general ()
 
        for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
                auto stream = _format_context->streams[i];
-               if (stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && avcodec_find_decoder(stream->codecpar->codec_id)) {
+               if (stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && avcodec_find_decoder(stream->codecpar->codec_id) && stream->disposition != AV_DISPOSITION_ATTACHED_PIC) {
                        auto const frame_rate = av_q2d(stream->avg_frame_rate);
                        if (frame_rate < 1 || frame_rate > 1000) {
                                /* Ignore video streams with crazy frame rates.  These are usually things like album art on MP3s. */