[FFmpeg-cvslog] avfilter/vf_libplacebo: fix normalize_sar calculation
Niklas Haas
git at videolan.org
Sat Nov 19 15:19:00 EET 2022
ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Fri Nov 18 14:57:08 2022 +0100| [46a4cc460edfaff8e5b88198a7127a910a5ab72f] | committer: Niklas Haas
avfilter/vf_libplacebo: fix normalize_sar calculation
This previous expression multiplied a constant (outlink->h) that was
guaranteed to be 0 at this point, thus making it always a no-op.
Fix the calculation, and also properly reset the SAR to 1:1 as is now
necessary (the failure to do so previously hid this bug's existence).
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=46a4cc460edfaff8e5b88198a7127a910a5ab72f
---
libavfilter/vf_libplacebo.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index 47a55ac311..ce57e7539e 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -582,12 +582,13 @@ static int libplacebo_config_output(AVFilterLink *outlink)
s->force_original_aspect_ratio,
s->force_divisible_by);
- scale_sar = (AVRational){outlink->h * inlink->w, *out_w * *out_h};
+ scale_sar = (AVRational){*out_h * inlink->w, *out_w * inlink->h};
if (inlink->sample_aspect_ratio.num)
scale_sar = av_mul_q(scale_sar, inlink->sample_aspect_ratio);
if (s->normalize_sar) {
/* Apply all SAR during scaling, so we don't need to set the out SAR */
+ outlink->sample_aspect_ratio = (AVRational){ 1, 1 };
s->target_sar = scale_sar;
} else {
/* This is consistent with other scale_* filters, which only
More information about the ffmpeg-cvslog
mailing list