From acf42c05da233095716e613717d647fc9d3c02c8 Mon Sep 17 00:00:00 2001 From: philippegorley <gorley.philippe@gmail.com> Date: Thu, 27 Sep 2018 11:56:37 -0400 Subject: [PATCH] test: add resampler test case Change-Id: I0f8f9571a715fe26a7db61a43675efc50ce71564 --- test/unitTest/media/audio/test_resampler.cpp | 35 +++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/test/unitTest/media/audio/test_resampler.cpp b/test/unitTest/media/audio/test_resampler.cpp index e5ae3adbc5..d9403e2144 100644 --- a/test/unitTest/media/audio/test_resampler.cpp +++ b/test/unitTest/media/audio/test_resampler.cpp @@ -23,6 +23,7 @@ #include <cppunit/extensions/HelperMacros.h> #include "dring.h" +#include "videomanager_interface.h" #include "libav_deps.h" #include "audio/resampler.h" @@ -38,10 +39,12 @@ public: void tearDown(); private: - void testResample(); + void testAudioBuffer(); + void testAudioFrame(); CPPUNIT_TEST_SUITE(ResamplerTest); - CPPUNIT_TEST(testResample); + CPPUNIT_TEST(testAudioBuffer); + CPPUNIT_TEST(testAudioFrame); CPPUNIT_TEST_SUITE_END(); std::unique_ptr<Resampler> resampler_; @@ -53,7 +56,6 @@ void ResamplerTest::setUp() { DRing::init(DRing::InitFlag(DRing::DRING_FLAG_DEBUG | DRing::DRING_FLAG_CONSOLE_LOG)); - libav_utils::ring_avcodec_init(); } void @@ -63,9 +65,8 @@ ResamplerTest::tearDown() } void -ResamplerTest::testResample() +ResamplerTest::testAudioBuffer() { - const constexpr AudioFormat none(0, 0); const constexpr AudioFormat infmt(44100, 1); const constexpr AudioFormat outfmt(48000, 2); @@ -79,6 +80,30 @@ ResamplerTest::testResample() CPPUNIT_ASSERT(outbuf.getFormat().nb_channels == 2); } +void +ResamplerTest::testAudioFrame() +{ + const constexpr AudioFormat infmt(44100, 1); + + resampler_.reset(new Resampler); + + AudioBuffer inbuf(1024, infmt); + auto input = inbuf.toAVFrame(); + CPPUNIT_ASSERT(input->data && input->data[0]); + CPPUNIT_ASSERT(input->data[0][0] == 0); + + DRing::AudioFrame out; + auto output = out.pointer(); + output->format = AV_SAMPLE_FMT_FLT; + output->sample_rate = 48000; + output->channel_layout = AV_CH_LAYOUT_STEREO; + + int ret = resampler_->resample(input, output); + CPPUNIT_ASSERT_MESSAGE(libav_utils::getError(ret).c_str(), ret >= 0); + CPPUNIT_ASSERT(output->data && output->data[0]); + CPPUNIT_ASSERT(output->data[0][0] == 0); +} + }} // namespace ring::test RING_TEST_RUNNER(ring::test::ResamplerTest::name()); -- GitLab