From b70d7a4ac72d23f3448f3b08b770fdf5f57de222 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 17 Apr 2014 12:51:03 +0200 Subject: lavc: add a native Opus decoder. Initial implementation by Andrew D'Addesio during GSoC 2012. Completion by Anton Khirnov , sponsored by the Mozilla Corporation. Further contributions by: Christophe Gisquet Janne Grunau Luca Barbato --- tests/Makefile | 1 + tests/fate/opus.mak | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 tests/fate/opus.mak (limited to 'tests') 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) -- cgit v1.2.3