From d064c9ded58092f82955a27fdefeab14a0907910 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 16 May 2023 19:47:12 +0200 Subject: [PATCH] fftools/ffmpeg: deobfuscate check_decode_result() call Passing ist=NULL is currently used to identify stream types that do not decode into AVFrames, i.e. subtitles. That is highly non-obvious - always pass a non-NULL InputStream and just check the type explicitly. --- fftools/ffmpeg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 1fcabd123a..537f287637 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -777,7 +777,7 @@ static void check_decode_result(InputStream *ist, int *got_output, int ret) if (ret < 0 && exit_on_error) exit_program(1); - if (*got_output && ist) { + if (*got_output && ist->dec_ctx->codec_type != AVMEDIA_TYPE_SUBTITLE) { if (ist->decoded_frame->decode_error_flags || (ist->decoded_frame->flags & AV_FRAME_FLAG_CORRUPT)) { av_log(ist, exit_on_error ? AV_LOG_FATAL : AV_LOG_WARNING, "corrupt decoded frame\n"); @@ -1317,7 +1317,7 @@ static int transcode_subtitles(InputStream *ist, const AVPacket *pkt, int ret = avcodec_decode_subtitle2(ist->dec_ctx, &subtitle, got_output, pkt); - check_decode_result(NULL, got_output, ret); + check_decode_result(ist, got_output, ret); if (ret < 0 || !*got_output) { *decode_failed = 1;