From 63de3232f725a6a8471e9b96dc7bb0742f53c696 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Thu, 10 Jul 2014 10:21:18 -0700 Subject: [PATCH] Add test for channel downmixing --- tests/tests/audio.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/tests/audio.cpp b/tests/tests/audio.cpp index e486c7084..aedb5fd9a 100644 --- a/tests/tests/audio.cpp +++ b/tests/tests/audio.cpp @@ -236,6 +236,35 @@ TEST(lagi_audio, sample_doubling) { } } +TEST(lagi_audio, stereo_downmix) { + struct AudioProvider : agi::AudioProvider { + AudioProvider() { + channels = 2; + num_samples = 90 * 480000; + decoded_samples = num_samples; + sample_rate = 480000; + bytes_per_sample = 2; + float_samples = false; + } + + void FillBuffer(void *buf, int64_t start, int64_t count) const override { + auto out = static_cast(buf); + for (int64_t end = start + count; start < end; ++start) { + *out++ = (int16_t)(start * 2); + *out++ = 0; + } + } + }; + + auto provider = agi::CreateConvertAudioProvider(agi::make_unique()); + EXPECT_EQ(1, provider->GetChannels()); + + int16_t samples[100]; + provider->GetAudio(samples, 0, 100); + for (int i = 0; i < 100; ++i) + EXPECT_EQ(i, samples[i]); +} + TEST(lagi_audio, pcm_simple) { auto path = agi::Path().Decode("?temp/pcm_simple"); {