Commit b2d50e1c4a for ffmpeg

commit b2d50e1c4a1bc09fd0a31a4f4c3293ec1bf3fd8d
Author: Niklas Haas <git@haasn.dev>
Date:   Wed Oct 28 14:51:20 2026 +0100

    avfilter/vf_libplacebo: tag output frames with the output link SAR

    The per-frame SAR disagreed with the output link: reset_sar (and thus also
    normalize_sar and multiple inputs) forwarded the input SAR instead of 1:1,
    and fit modes other than fill always stretched it. The frames are rendered
    according to the link SAR, so use that.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Sponsored-by: nxtedition AB
    Signed-off-by: Niklas Haas <git@haasn.dev>

diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index 4f7d7f3472..e03b7aa963 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -965,6 +965,7 @@ static int output_frame(AVFilterContext *ctx, int64_t pts)
     RET(av_frame_copy_props(out, ref));
     out->width = outlink->w;
     out->height = outlink->h;
+    out->sample_aspect_ratio = outlink->sample_aspect_ratio;
     out->colorspace = outlink->colorspace;
     out->color_range = outlink->color_range;
     out->alpha_mode = outlink->alpha_mode;
@@ -996,15 +997,6 @@ static int output_frame(AVFilterContext *ctx, int64_t pts)
     if (s->apply_filmgrain)
         av_frame_remove_side_data(out, AV_FRAME_DATA_FILM_GRAIN_PARAMS);

-    if (s->reset_sar) {
-        out->sample_aspect_ratio = ref->sample_aspect_ratio;
-    } else {
-        const AVRational ar_ref  = { ref->width, ref->height };
-        const AVRational ar_out  = { out->width, out->height };
-        const AVRational stretch = av_div_q(ar_ref, ar_out);
-        out->sample_aspect_ratio = av_mul_q(ref->sample_aspect_ratio, stretch);
-    }
-
 props_done:
     out->pts = pts;
     if (s->fps.num)