libavfilter/scale2ref: Maintain main input's DAR
authorKevin Mark <kmark937@gmail.com>
Mon, 5 Jun 2017 10:55:21 +0000 (06:55 -0400)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 4 Jul 2017 13:09:10 +0000 (15:09 +0200)
commitd32a6c36e44c4c543786922f5876372662c340e3
treed5d3db977be5820d23d73210c770193936c0bf75
parent1212041c91b724da77c83f14980440115433e773
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: Kevin Mark <kmark937@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavfilter/vf_scale.c
tests/ref/fate/filter-scale2ref_keep_aspect