提交 d32a6c36 编写于 作者: K Kevin Mark 提交者: Michael Niedermayer

libavfilter/scale2ref: Maintain main input's DAR

The scale2ref filter will now maintain the DAR of the main input and
not the DAR of the reference input. This previous behavior was deemed
counterintuitive for most (all?) use-cases.

Before:
scale2ref=iw/4:ow/mdar
in  w:320 h:240 fmt:rgb24 sar:1/1
ref w:640 h:360 fmt:rgb24 sar:1/1
out w:160 h:120 fmt:rgb24 sar:4/3 flags:0x2
SAR: ((120 * 640) / (160 * 360)) * (1 / 1) = 4 / 3
DAR: (160 / 120) * (4 / 3) = 16 / 9
(main out now same DAR as ref)

Now:
scale2ref=iw/4:ow/mdar
in  w:320 h:240 fmt:rgb24 sar:1/1
ref w:640 h:360 fmt:rgb24 sar:1/1
out w:160 h:120 fmt:rgb24 sar:1/1 flags:0x2
SAR: ((120 * 320) / (160 * 240)) * (1 / 1) = 1 / 1
DAR: (160 / 120) * (1 / 1) = 4 / 3
(main out same DAR as main in)

The scale2ref FATE test has also been updated.
Signed-off-by: NKevin Mark <kmark937@gmail.com>
Signed-off-by: NMichael Niedermayer <michael@niedermayer.cc>
上级 1212041c
......@@ -337,10 +337,10 @@ static int config_props(AVFilterLink *outlink)
}
}
if (inlink->sample_aspect_ratio.num){
outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * inlink->w, outlink->w * inlink->h}, inlink->sample_aspect_ratio);
if (inlink0->sample_aspect_ratio.num){
outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * inlink0->w, outlink->w * inlink0->h}, inlink0->sample_aspect_ratio);
} else
outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;
outlink->sample_aspect_ratio = inlink0->sample_aspect_ratio;
av_log(ctx, AV_LOG_VERBOSE, "w:%d h:%d fmt:%s sar:%d/%d -> w:%d h:%d fmt:%s sar:%d/%d flags:0x%0x\n",
inlink ->w, inlink ->h, av_get_pix_fmt_name( inlink->format),
......
......@@ -5,7 +5,7 @@
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 160x120
#sar 0: 4/3
#sar 0: 1/1
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 9a19c23dc3a557786840d0098606d5f1
0, 1, 1, 1, 57600, e6fbdabaf1bb0d28afc648ed4d27e9f0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册