[FFmpeg-devel,3/3] lavc/cbs: Add tests for VP9

Submitted by Mark Thompson on April 8, 2018, 5:48 p.m.

Details

Message ID 20180408174824.3737-3-sw@jkqxz.net
State New
Headers show

Commit Message

Mark Thompson April 8, 2018, 5:48 p.m.
Uses the same mechanism as other codecs - conformance test files are
passed through the metadata filter (which, with no options, reads the
input and writes it back) and the output verified to match the input.
---
 tests/fate/cbs.mak                                 | 34 ++++++++++++++++++----
 tests/ref/fate/cbs-vp9-vp90-2-03-deltaq            |  1 +
 tests/ref/fate/cbs-vp9-vp90-2-05-resize            |  1 +
 tests/ref/fate/cbs-vp9-vp90-2-06-bilinear          |  1 +
 tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas         |  1 +
 .../ref/fate/cbs-vp9-vp90-2-10-show-existing-frame |  1 +
 .../fate/cbs-vp9-vp90-2-10-show-existing-frame2    |  1 +
 .../ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo  |  1 +
 .../ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo  |  1 +
 tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian    |  1 +
 tests/ref/fate/cbs-vp9-vp91-2-04-yuv422            |  1 +
 tests/ref/fate/cbs-vp9-vp91-2-04-yuv444            |  1 +
 tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420      |  1 +
 tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422      |  1 +
 tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444      |  1 +
 15 files changed, 43 insertions(+), 5 deletions(-)
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-05-resize
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
 create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
 create mode 100644 tests/ref/fate/cbs-vp9-vp91-2-04-yuv422
 create mode 100644 tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
 create mode 100644 tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
 create mode 100644 tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
 create mode 100644 tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444

Comments

James Almer April 9, 2018, 7:36 p.m.
On 4/8/2018 2:48 PM, Mark Thompson wrote:
> Uses the same mechanism as other codecs - conformance test files are
> passed through the metadata filter (which, with no options, reads the
> input and writes it back) and the output verified to match the input.
> ---
>  tests/fate/cbs.mak                                 | 34 ++++++++++++++++++----
>  tests/ref/fate/cbs-vp9-vp90-2-03-deltaq            |  1 +
>  tests/ref/fate/cbs-vp9-vp90-2-05-resize            |  1 +
>  tests/ref/fate/cbs-vp9-vp90-2-06-bilinear          |  1 +
>  tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas         |  1 +
>  .../ref/fate/cbs-vp9-vp90-2-10-show-existing-frame |  1 +
>  .../fate/cbs-vp9-vp90-2-10-show-existing-frame2    |  1 +
>  .../ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo  |  1 +
>  .../ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo  |  1 +
>  tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian    |  1 +
>  tests/ref/fate/cbs-vp9-vp91-2-04-yuv422            |  1 +
>  tests/ref/fate/cbs-vp9-vp91-2-04-yuv444            |  1 +
>  tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420      |  1 +
>  tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422      |  1 +
>  tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444      |  1 +
>  15 files changed, 43 insertions(+), 5 deletions(-)
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-05-resize
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
>  create mode 100644 tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
>  create mode 100644 tests/ref/fate/cbs-vp9-vp91-2-04-yuv422
>  create mode 100644 tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
>  create mode 100644 tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
>  create mode 100644 tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
>  create mode 100644 tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444

I'd say add at least one yuv440p test.

LGTM either way.

Patch hide | download patch | download mbox

diff --git a/tests/fate/cbs.mak b/tests/fate/cbs.mak
index fc5967e6f3..d4658fae81 100644
--- a/tests/fate/cbs.mak
+++ b/tests/fate/cbs.mak
@@ -2,9 +2,9 @@ 
 # arguments, it decomposes the stream fully and then recomposes it
 # without making any changes.
 
-fate-cbs: fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2
+fate-cbs: fate-cbs-h264 fate-cbs-hevc fate-cbs-mpeg2 fate-cbs-vp9
 
-FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(1)_PARSER $(2)_METADATA_BSF $(3)_DECODER $(3)_MUXER)
+FATE_CBS_DEPS = $(call ALLYES, $(1)_DEMUXER $(2)_PARSER $(3)_METADATA_BSF $(4)_DECODER $(5)_MUXER)
 
 define FATE_CBS_TEST
 # (codec, test_name, sample_file, output_format)
@@ -32,7 +32,7 @@  FATE_CBS_H264_SAMPLES =   \
 
 $(foreach N,$(FATE_CBS_H264_SAMPLES),$(eval $(call FATE_CBS_TEST,h264,$(basename $(N)),h264-conformance/$(N),h264)))
 
-FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264) = $(FATE_CBS_h264)
+FATE_CBS_H264-$(call FATE_CBS_DEPS, H264, H264, H264, H264, H264) = $(FATE_CBS_h264)
 FATE_SAMPLES_AVCONV += $(FATE_CBS_H264-yes)
 fate-cbs-h264: $(FATE_CBS_H264-yes)
 
@@ -61,7 +61,7 @@  FATE_CBS_HEVC_SAMPLES =       \
 
 $(foreach N,$(FATE_CBS_HEVC_SAMPLES),$(eval $(call FATE_CBS_TEST,hevc,$(basename $(N)),hevc-conformance/$(N),hevc)))
 
-FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
+FATE_CBS_HEVC-$(call FATE_CBS_DEPS, HEVC, HEVC, HEVC, HEVC, HEVC) = $(FATE_CBS_hevc)
 FATE_SAMPLES_AVCONV += $(FATE_CBS_HEVC-yes)
 fate-cbs-hevc: $(FATE_CBS_HEVC-yes)
 
@@ -74,6 +74,30 @@  FATE_CBS_MPEG2_SAMPLES =     \
 
 $(foreach N,$(FATE_CBS_MPEG2_SAMPLES),$(eval $(call FATE_CBS_TEST,mpeg2,$(basename $(N)),mpeg2/$(N),mpeg2video)))
 
-FATE_CBS_MPEG2-$(call FATE_CBS_DEPS, MPEGVIDEO, MPEG2, MPEG2VIDEO) = $(FATE_CBS_mpeg2)
+FATE_CBS_MPEG2-$(call FATE_CBS_DEPS, MPEGVIDEO, MPEGVIDEO, MPEG2, MPEG2VIDEO, MPEG2VIDEO) = $(FATE_CBS_mpeg2)
 FATE_SAMPLES_AVCONV += $(FATE_CBS_MPEG2-yes)
 fate-cbs-mpeg2: $(FATE_CBS_MPEG2-yes)
+
+# VP9 read/write
+
+FATE_CBS_VP9_SAMPLES =                  \
+    vp90-2-03-deltaq.webm               \
+    vp90-2-05-resize.ivf                \
+    vp90-2-06-bilinear.webm             \
+    vp90-2-09-lf_deltas.webm            \
+    vp90-2-10-show-existing-frame.webm  \
+    vp90-2-10-show-existing-frame2.webm \
+    vp90-2-segmentation-aq-akiyo.webm   \
+    vp90-2-segmentation-sf-akiyo.webm   \
+    vp90-2-tiling-pedestrian.webm       \
+    vp91-2-04-yuv422.webm               \
+    vp91-2-04-yuv444.webm               \
+    vp92-2-20-10bit-yuv420.webm         \
+    vp93-2-20-10bit-yuv422.webm         \
+    vp93-2-20-12bit-yuv444.webm
+
+$(foreach N,$(FATE_CBS_VP9_SAMPLES),$(eval $(call FATE_CBS_TEST,vp9,$(basename $(N)),vp9-test-vectors/$(N),ivf)))
+
+FATE_CBS_VP9-$(call FATE_CBS_DEPS, IVF, VP9, VP9, VP9, IVF) = $(FATE_CBS_vp9)
+FATE_SAMPLES_AVCONV += $(FATE_CBS_VP9-yes)
+fate-cbs-vp9: $(FATE_CBS_VP9-yes)
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq b/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
new file mode 100644
index 0000000000..db09cfd5e0
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
@@ -0,0 +1 @@ 
+bb630ef560f83951fa6547a664fdb636
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-05-resize b/tests/ref/fate/cbs-vp9-vp90-2-05-resize
new file mode 100644
index 0000000000..8f036bba81
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-05-resize
@@ -0,0 +1 @@ 
+6838422ebb45df353a2bad62b9aff8e9
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear b/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
new file mode 100644
index 0000000000..f579459179
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
@@ -0,0 +1 @@ 
+2ca9d012c7212e38f5e2727ac66ec6c5
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas b/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
new file mode 100644
index 0000000000..e0b5686d0b
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
@@ -0,0 +1 @@ 
+78f5e46bfaecbcd62b9126697a0d97b7
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
new file mode 100644
index 0000000000..4a4d752428
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
@@ -0,0 +1 @@ 
+eea9d10a696c6ed971e4fae9fb619b10
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
new file mode 100644
index 0000000000..6da8999114
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
@@ -0,0 +1 @@ 
+abf4c7d4be7d3576d96b6f92166b5894
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
new file mode 100644
index 0000000000..12dfb10d40
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
@@ -0,0 +1 @@ 
+86cd3750cc9a0672717643c9b9f87fd5
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
new file mode 100644
index 0000000000..c2b1b8723a
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
@@ -0,0 +1 @@ 
+5d12fbe6220aae9e62b1d79785a83387
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian b/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
new file mode 100644
index 0000000000..f9cab39bd6
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
@@ -0,0 +1 @@ 
+4c51f3c796baa7c2baa4b7ec0d011406
diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv422 b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv422
new file mode 100644
index 0000000000..c086660909
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv422
@@ -0,0 +1 @@ 
+9b16e2e684e1019c30817c4790107565
diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
new file mode 100644
index 0000000000..628ea9a4d9
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
@@ -0,0 +1 @@ 
+911eafd8e442e646c5ce97d781757ca8
diff --git a/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 b/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
new file mode 100644
index 0000000000..eeb7580d74
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
@@ -0,0 +1 @@ 
+16198c32c29228e0513004ed1bf6fcee
diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 b/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
new file mode 100644
index 0000000000..b25bc1166e
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
@@ -0,0 +1 @@ 
+4bceedef4aa6a663a09761971e43b5a8
diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 b/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444
new file mode 100644
index 0000000000..8d122d1370
--- /dev/null
+++ b/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444
@@ -0,0 +1 @@ 
+0f413b840633bfcfcc78b4c9fab933bf