Message ID | 20221118142512.72413-2-ffmpeg@haasn.xyz |
---|---|
State | Accepted |
Commit | 46a4cc460edfaff8e5b88198a7127a910a5ab72f |
Headers | show |
Series | [FFmpeg-devel,1/2] avfilter/vf_libplacebo: default to normalize_sar=0 | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c index d52833263d..921cdb36fd 100644 --- a/libavfilter/vf_libplacebo.c +++ b/libavfilter/vf_libplacebo.c @@ -576,12 +576,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
From: Niklas Haas <git@haasn.dev> 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). --- libavfilter/vf_libplacebo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)