summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2014-04-17 12:51:03 +0200
committerAnton Khirnov <anton@khirnov.net>2014-05-15 06:49:34 +0200
commitb70d7a4ac72d23f3448f3b08b770fdf5f57de222 (patch)
tree5227a8698a1499744632d0c029d91200f5007520 /tests
parent7e90133f6420b1c53652f972b9561600822881ee (diff)
lavc: add a native Opus decoder.
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during GSoC 2012. Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the Mozilla Corporation. Further contributions by: Christophe Gisquet <christophe.gisquet@gmail.com> Janne Grunau <janne-libav@jannau.net> Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile1
-rw-r--r--tests/fate/opus.mak39
2 files changed, 40 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 004b44cc33..414c8f7dcd 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -93,6 +93,7 @@ include $(SRC_PATH)/tests/fate/microsoft.mak
include $(SRC_PATH)/tests/fate/monkeysaudio.mak
include $(SRC_PATH)/tests/fate/mp3.mak
include $(SRC_PATH)/tests/fate/mpc.mak
+include $(SRC_PATH)/tests/fate/opus.mak
include $(SRC_PATH)/tests/fate/pcm.mak
include $(SRC_PATH)/tests/fate/probe.mak
include $(SRC_PATH)/tests/fate/prores.mak
diff --git a/tests/fate/opus.mak b/tests/fate/opus.mak
new file mode 100644
index 0000000000..6c8bc9bd2c
--- /dev/null
+++ b/tests/fate/opus.mak
@@ -0,0 +1,39 @@
+# The samples were produced by simply rewrapping the official test vectors from
+# their custom format into Matroska.
+# The reference files were created with our decoder and tested against the
+# libopus output with the official opus_compare tool. We cannot use libopus
+# output as reference directly, because the use of different resamplers would
+# require too high fuzz values, which can hide bugs.
+# Before adding new tests here, always make sure they pass opus_compare.
+
+OPUS_CELT_SAMPLES = $(addprefix testvector, 01 07 11) tron.6ch.tinypkts
+OPUS_HYBRID_SAMPLES = $(addprefix testvector, 05 06)
+OPUS_SILK_SAMPLES = $(addprefix testvector, 02 03 04)
+OPUS_SAMPLES = $(addprefix testvector, 08 09 10 12)
+
+define FATE_OPUS_TEST
+FATE_OPUS += fate-opus-$(1)
+FATE_OPUS$(2) += fate-opus-$(1)
+fate-opus-$(1): CMD = avconv -i $(TARGET_SAMPLES)/opus/$(1).mka -f f32le -
+fate-opus-$(1): REF = $(TARGET_SAMPLES)/opus/$(1).f32
+endef
+
+$(foreach N,$(OPUS_CELT_SAMPLES), $(eval $(call FATE_OPUS_TEST,$(N),_CELT)))
+$(foreach N,$(OPUS_HYBRID_SAMPLES),$(eval $(call FATE_OPUS_TEST,$(N),_HYBRID)))
+$(foreach N,$(OPUS_SILK_SAMPLES), $(eval $(call FATE_OPUS_TEST,$(N),_SILK)))
+$(foreach N,$(OPUS_SAMPLES), $(eval $(call FATE_OPUS_TEST,$(N),)))
+
+FATE_OPUS := $(sort $(FATE_OPUS))
+
+$(FATE_OPUS): CMP = stddev
+$(FATE_OPUS): CMP_UNIT = f32
+$(FATE_OPUS): FUZZ = 3
+
+$(FATE_OPUS_CELT): CMP = oneoff
+$(FATE_OPUS_CELT): FUZZ = 5
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, MATROSKA, OPUS) += $(FATE_OPUS)
+fate-opus-celt: $(FATE_OPUS_CELT)
+fate-opus-hybrid: $(FATE_OPUS_HYBRID)
+fate-opus-silk: $(FATE_OPUS_SILK)
+fate-opus: $(FATE_OPUS)