[FFmpeg-devel] [PATCH 05/25] fftools/ffmpeg: move a miplaced assignment

Anton Khirnov anton at khirnov.net
Thu Apr 13 17:12:03 EEST 2023


Changing AVCodecContext.sample_aspect_ratio after the encoder was opened
is by itself questionable, but if anywhere it belongs in encoding rather
than filtering code.
---
 fftools/ffmpeg.c     | 3 ---
 fftools/ffmpeg_enc.c | 3 +++
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index c1070485be..700fa5fbe1 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -711,9 +711,6 @@ static int reap_filters(int flush)
 
             switch (av_buffersink_get_type(filter)) {
             case AVMEDIA_TYPE_VIDEO:
-                if (!ost->frame_aspect_ratio.num)
-                    enc->sample_aspect_ratio = filtered_frame->sample_aspect_ratio;
-
                 enc_frame(ost, filtered_frame);
                 break;
             case AVMEDIA_TYPE_AUDIO:
diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
index a0779c45ae..0236e50e38 100644
--- a/fftools/ffmpeg_enc.c
+++ b/fftools/ffmpeg_enc.c
@@ -653,6 +653,9 @@ static int encode_frame(OutputFile *of, OutputStream *ost, AVFrame *frame)
                    av_ts2str(frame->pts), av_ts2timestr(frame->pts, &enc->time_base),
                    enc->time_base.num, enc->time_base.den);
         }
+
+        if (frame->sample_aspect_ratio.num && !ost->frame_aspect_ratio.num)
+            enc->sample_aspect_ratio = frame->sample_aspect_ratio;
     }
 
     update_benchmark(NULL);
-- 
2.39.1



More information about the ffmpeg-devel mailing list