[FFmpeg-devel] [PATCH 35/36] fftools/ffmpeg_dec: inline decode_audio() into dec_packet()

Anton Khirnov anton at khirnov.net
Wed May 17 13:20:28 EEST 2023


The former function is now trivial - it has 3 lines and cannot fail.
---
 fftools/ffmpeg_dec.c | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index 4662d0a265..c8f9ba0f0c 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -128,17 +128,6 @@ static void audio_ts_process(InputStream *ist, AVFrame *frame)
     frame->time_base = tb_filter;
 }
 
-static int decode_audio(InputStream *ist, AVFrame *decoded_frame)
-{
-    ist->samples_decoded += decoded_frame->nb_samples;
-
-    audio_ts_process(ist, decoded_frame);
-
-    ist->nb_samples = decoded_frame->nb_samples;
-
-    return 0;
-}
-
 static int64_t video_duration_estimate(const InputStream *ist, const AVFrame *frame)
 {
     const InputFile   *ifile = input_files[ist->file_index];
@@ -463,14 +452,18 @@ int dec_packet(InputStream *ist, const AVPacket *pkt, int no_eof)
 
         frame->time_base = dec->pkt_timebase;
 
-        ret = dec->codec_type == AVMEDIA_TYPE_AUDIO ?
-                decode_audio(ist, frame)            :
-                decode_video(ist, frame);
+        if (dec->codec_type == AVMEDIA_TYPE_AUDIO) {
+            ist->samples_decoded += frame->nb_samples;
+            ist->nb_samples       = frame->nb_samples;
 
-        if (ret < 0) {
-            av_log(NULL, AV_LOG_FATAL, "Error while processing the decoded "
-                   "data for stream #%d:%d\n", ist->file_index, ist->st->index);
-            exit_program(1);
+            audio_ts_process(ist, frame);
+        } else {
+            ret = decode_video(ist, frame);
+            if (ret < 0) {
+                av_log(NULL, AV_LOG_FATAL, "Error while processing the decoded "
+                       "data for stream #%d:%d\n", ist->file_index, ist->st->index);
+                exit_program(1);
+            }
         }
 
         ist->frames_decoded++;
-- 
2.39.2



More information about the ffmpeg-devel mailing list