diff mbox

[FFmpeg-devel] fate: add vf_overlay test for main source with alpha channel

Message ID 20170719190049.17909-1-pegro@friiks.de
State Superseded
Headers show

Commit Message

Peter Große July 19, 2017, 7 p.m. UTC
Signed-off-by: Peter Große <pegro@friiks.de>
---
Updated version of the test.

I was able to reproduce your checksums only after removing

  --disable-optimizations --disable-mmx --disable-stripping

from my configure command. I thought optimizations should have no
impact on the result?!

 tests/fate/filter-video.mak              |  5 +++++
 tests/ref/fate/filter-overlay-main-alpha | 15 +++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 tests/ref/fate/filter-overlay-main-alpha

Comments

Peter Große July 20, 2017, 3:06 p.m. UTC | #1
On Wed, 19 Jul 2017 21:00:49 +0200
Peter Große <pegro@friiks.de> wrote:

> I was able to reproduce your checksums only after removing
> 
>   --disable-optimizations --disable-mmx --disable-stripping
> 
> from my configure command. I thought optimizations should have no
> impact on the result?!

After some further tests, it seems swscale (used as the auto_scaler in the
test) produces slightly different output depending on whether MMX is enabled or
not.

When I re-add --disable-optimizations --enable-mmx --disable-stripping to my
configure command line, the test succeeds.

Any further comments to the patch and test case?

Regards
Peter
Nicolas George July 20, 2017, 3:11 p.m. UTC | #2
Le duodi 2 thermidor, an CCXXV, Peter Große a écrit :
> After some further tests, it seems swscale (used as the auto_scaler in the
> test) produces slightly different output depending on whether MMX is enabled or
> not.
> 
> When I re-add --disable-optimizations --enable-mmx --disable-stripping to my
> configure command line, the test succeeds.
> 
> Any further comments to the patch and test case?

If you use testsrc2 instead of file inputs, it produces streams with the
requested colorspace directly.

testsrc2 does not handle alpha, though, so most of the video is
transparent. I will have a look to see if it can be improved.

Regards,
Tobias Rapp July 20, 2017, 3:19 p.m. UTC | #3
On 20.07.2017 17:06, Peter Große wrote:
> On Wed, 19 Jul 2017 21:00:49 +0200
> Peter Große <pegro@friiks.de> wrote:
>
>> I was able to reproduce your checksums only after removing
>>
>>   --disable-optimizations --disable-mmx --disable-stripping
>>
>> from my configure command. I thought optimizations should have no
>> impact on the result?!
>
> After some further tests, it seems swscale (used as the auto_scaler in the
> test) produces slightly different output depending on whether MMX is enabled or
> not.
>
> When I re-add --disable-optimizations --enable-mmx --disable-stripping to my
> configure command line, the test succeeds.
>
> Any further comments to the patch and test case?

Maybe try adding -sws_flags +accurate_rnd+bitexact to CMD?

Regards,
Tobias
Peter Große July 20, 2017, 3:38 p.m. UTC | #4
On Thu, 20 Jul 2017 17:19:36 +0200
Tobias Rapp <t.rapp@noa-archive.com> wrote:

> > When I re-add --disable-optimizations --enable-mmx --disable-stripping to my
> > configure command line, the test succeeds.
> >
> > Any further comments to the patch and test case?  
> 
> Maybe try adding -sws_flags +accurate_rnd+bitexact to CMD?

I tried that, but that didn't help.

Regards
Peter
Nicolas George July 20, 2017, 3:42 p.m. UTC | #5
Le duodi 2 thermidor, an CCXXV, Nicolas George a écrit :
> testsrc2 does not handle alpha, though, so most of the video is
> transparent. I will have a look to see if it can be improved.

Have a look at the attached patch.

(Not complete, but working.)

testsrc2=s=1024x768:alpha=255[a];testsrc2=alpha=128[b];[a][b]overlay=x=100:y=50

gives the expected result.

Regards,
Michael Niedermayer July 20, 2017, 9:43 p.m. UTC | #6
On Thu, Jul 20, 2017 at 05:38:18PM +0200, Peter Große wrote:
> On Thu, 20 Jul 2017 17:19:36 +0200
> Tobias Rapp <t.rapp@noa-archive.com> wrote:
> 
> > > When I re-add --disable-optimizations --enable-mmx --disable-stripping to my
> > > configure command line, the test succeeds.
> > >
> > > Any further comments to the patch and test case?  
> > 
> > Maybe try adding -sws_flags +accurate_rnd+bitexact to CMD?
> 
> I tried that, but that didn't help.

make sure these flags actually get passed into the used swscale
if they do, please open a ticket, i probably wont find the time
to look into this in the near future but when i or someone else works
on sws the next time being able to quickly find all issues affecting
it shuld help "time per bug"

thx

[...]
diff mbox

Patch

diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak
index 53fc7a6528..b30d5b7b7c 100644
--- a/tests/fate/filter-video.mak
+++ b/tests/fate/filter-video.mak
@@ -351,6 +351,11 @@  FATE_FILTER_SAMPLES-$(call ALLYES, MATROSKA_DEMUXER OVERLAY_FILTER H264_DECODER
 fate-filter-overlay-dvdsub-2397: tests/data/filtergraphs/overlay-dvdsub-2397
 fate-filter-overlay-dvdsub-2397: CMD = framecrc -flags bitexact -i $(TARGET_SAMPLES)/filter/242_4.mkv -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/overlay-dvdsub-2397 -c:a copy
 
+FATE_FILTER_SAMPLES-$(call ALLYES, MXF_DEMUXER OVERLAY_FILTER DNXHD_DECODER PNG_DECODER) += fate-filter-overlay-main-alpha
+fate-filter-overlay-main-alpha: SRC = $(TARGET_SAMPLES)/mxf/track_01_v02.mxf
+fate-filter-overlay-main-alpha: OVERLAY = $(TARGET_SAMPLES)/png1/lena-rgba.png
+fate-filter-overlay-main-alpha: CMD = framecrc -flags bitexact -i $(SRC) -filter_complex "movie='$(OVERLAY)'[logo];[v:0][logo]overlay" -an
+
 FATE_FILTER_HQX-$(call ALLYES, IMAGE2_DEMUXER PNG_DECODER HQX_FILTER) = fate-filter-hq2x fate-filter-hq3x fate-filter-hq4x
 FATE_FILTER_SAMPLES-yes += $(FATE_FILTER_HQX-yes)
 fate-filter-hq2x: CMD = framecrc -i $(TARGET_SAMPLES)/filter/pixelart%d.png -vf hqx=2 -pix_fmt bgra
diff --git a/tests/ref/fate/filter-overlay-main-alpha b/tests/ref/fate/filter-overlay-main-alpha
new file mode 100644
index 0000000000..95bb59ea13
--- /dev/null
+++ b/tests/ref/fate/filter-overlay-main-alpha
@@ -0,0 +1,15 @@ 
+#tb 0: 1001/24000
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1280x720
+#sar 0: 1/1
+0,          0,          0,        1,  2304000, 0x49ef8134
+0,          1,          1,        1,  2304000, 0x49ef8134
+0,          2,          2,        1,  2304000, 0x49ef8134
+0,          3,          3,        1,  2304000, 0x49ef8134
+0,          4,          4,        1,  2304000, 0x49ef8134
+0,          5,          5,        1,  2304000, 0x49ef8134
+0,          6,          6,        1,  2304000, 0x49ef8134
+0,          7,          7,        1,  2304000, 0x49ef8134
+0,          8,          8,        1,  2304000, 0x49ef8134
+0,          9,          9,        1,  2304000, 0x49ef8134