[FFmpeg-cvslog] fftools/ffmpeg: deobfuscate check_decode_result() call

Anton Khirnov git at videolan.org
Mon May 22 18:12:04 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue May 16 19:47:12 2023 +0200| [d064c9ded58092f82955a27fdefeab14a0907910] | committer: Anton Khirnov

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d064c9ded58092f82955a27fdefeab14a0907910
---

 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;



More information about the ffmpeg-cvslog mailing list