From 8967183bf79322c5cb3cbd99e9b7aa298228d0a2 Mon Sep 17 00:00:00 2001 From: kwiberg Date: Tue, 22 Sep 2015 14:06:29 -0700 Subject: Simple cleanups of AudioDecoder and AudioEncoder classes * Make sure they're all final and don't allow copying or assignment. * Get rid of the single-channel PCM decoder classes. * Move some includes from .h to .cc files where possible. BUG=webrtc:4557 Review URL: https://codereview.webrtc.org/1353803002 Cr-Commit-Position: refs/heads/master@{#10021} --- .../audio_coding/neteq/audio_decoder_impl.cc | 14 +++++----- .../audio_coding/neteq/audio_decoder_unittest.cc | 6 ++-- .../neteq/neteq_network_stats_unittest.cc | 32 +++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) (limited to 'webrtc/modules/audio_coding/neteq') diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc index 52f327bc61..afad9b1d6b 100644 --- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc +++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc @@ -183,13 +183,13 @@ AudioDecoder* CreateAudioDecoder(NetEqDecoder codec_type) { } switch (codec_type) { case kDecoderPCMu: - return new AudioDecoderPcmU; + return new AudioDecoderPcmU(1); case kDecoderPCMa: - return new AudioDecoderPcmA; + return new AudioDecoderPcmA(1); case kDecoderPCMu_2ch: - return new AudioDecoderPcmUMultiCh(2); + return new AudioDecoderPcmU(2); case kDecoderPCMa_2ch: - return new AudioDecoderPcmAMultiCh(2); + return new AudioDecoderPcmA(2); #ifdef WEBRTC_CODEC_ILBC case kDecoderILBC: return new AudioDecoderIlbc; @@ -207,14 +207,14 @@ AudioDecoder* CreateAudioDecoder(NetEqDecoder codec_type) { case kDecoderPCM16Bwb: case kDecoderPCM16Bswb32kHz: case kDecoderPCM16Bswb48kHz: - return new AudioDecoderPcm16B; + return new AudioDecoderPcm16B(1); case kDecoderPCM16B_2ch: case kDecoderPCM16Bwb_2ch: case kDecoderPCM16Bswb32kHz_2ch: case kDecoderPCM16Bswb48kHz_2ch: - return new AudioDecoderPcm16BMultiCh(2); + return new AudioDecoderPcm16B(2); case kDecoderPCM16B_5ch: - return new AudioDecoderPcm16BMultiCh(5); + return new AudioDecoderPcm16B(5); #ifdef WEBRTC_CODEC_G722 case kDecoderG722: return new AudioDecoderG722; diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc b/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc index 537f16cca4..78ebf9f708 100644 --- a/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc @@ -286,7 +286,7 @@ class AudioDecoderPcmUTest : public AudioDecoderTest { AudioDecoderPcmUTest() : AudioDecoderTest() { frame_size_ = 160; data_length_ = 10 * frame_size_; - decoder_ = new AudioDecoderPcmU; + decoder_ = new AudioDecoderPcmU(1); AudioEncoderPcmU::Config config; config.frame_size_ms = static_cast(frame_size_ / 8); config.payload_type = payload_type_; @@ -299,7 +299,7 @@ class AudioDecoderPcmATest : public AudioDecoderTest { AudioDecoderPcmATest() : AudioDecoderTest() { frame_size_ = 160; data_length_ = 10 * frame_size_; - decoder_ = new AudioDecoderPcmA; + decoder_ = new AudioDecoderPcmA(1); AudioEncoderPcmA::Config config; config.frame_size_ms = static_cast(frame_size_ / 8); config.payload_type = payload_type_; @@ -313,7 +313,7 @@ class AudioDecoderPcm16BTest : public AudioDecoderTest { codec_input_rate_hz_ = 16000; frame_size_ = 20 * codec_input_rate_hz_ / 1000; data_length_ = 10 * frame_size_; - decoder_ = new AudioDecoderPcm16B; + decoder_ = new AudioDecoderPcm16B(1); assert(decoder_); AudioEncoderPcm16B::Config config; config.sample_rate_hz = codec_input_rate_hz_; diff --git a/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc index e3a0cc17af..e9ebe064eb 100644 --- a/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc @@ -10,7 +10,6 @@ #include "testing/gmock/include/gmock/gmock.h" #include "webrtc/base/scoped_ptr.h" -#include "webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h" #include "webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h" #include "webrtc/modules/audio_coding/neteq/tools/rtp_generator.h" @@ -21,16 +20,14 @@ using ::testing::_; using ::testing::SetArgPointee; using ::testing::Return; - -class MockAudioDecoderOpus : public AudioDecoderOpus { +class MockAudioDecoder final : public AudioDecoder { public: static const int kPacketDuration = 960; // 48 kHz * 20 ms - explicit MockAudioDecoderOpus(int num_channels) - : AudioDecoderOpus(num_channels), - fec_enabled_(false) { + explicit MockAudioDecoder(size_t num_channels) + : num_channels_(num_channels), fec_enabled_(false) { } - virtual ~MockAudioDecoderOpus() { Die(); } + ~MockAudioDecoder() override { Die(); } MOCK_METHOD0(Die, void()); MOCK_METHOD0(Reset, void()); @@ -49,6 +46,8 @@ class MockAudioDecoderOpus : public AudioDecoderOpus { return fec_enabled_; } + size_t Channels() const override { return num_channels_; } + void set_fec_enabled(bool enable_fec) { fec_enabled_ = enable_fec; } bool fec_enabled() const { return fec_enabled_; } @@ -75,13 +74,14 @@ class MockAudioDecoderOpus : public AudioDecoderOpus { } private: + const size_t num_channels_; bool fec_enabled_; }; class NetEqNetworkStatsTest : public NetEqExternalDecoderTest { public: static const int kPayloadSizeByte = 30; - static const int kFrameSizeMs = 20; // frame size of Opus + static const int kFrameSizeMs = 20; static const int kMaxOutputSize = 960; // 10 ms * 48 kHz * 2 channels. enum logic { @@ -108,7 +108,7 @@ struct NetEqNetworkStatsCheck { }; NetEqNetworkStatsTest(NetEqDecoder codec, - MockAudioDecoderOpus* decoder) + MockAudioDecoder* decoder) : NetEqExternalDecoderTest(codec, decoder), external_decoder_(decoder), samples_per_ms_(CodecSampleRateHz(codec) / 1000), @@ -227,7 +227,7 @@ struct NetEqNetworkStatsCheck { expects.stats_ref.expand_rate = expects.stats_ref.speech_expand_rate = 1065; RunTest(50, expects); - // Next we enable Opus FEC. + // Next we enable FEC. external_decoder_->set_fec_enabled(true); // If FEC fills in the lost packets, no packet loss will be counted. expects.stats_ref.packet_loss_rate = 0; @@ -261,7 +261,7 @@ struct NetEqNetworkStatsCheck { } private: - MockAudioDecoderOpus* external_decoder_; + MockAudioDecoder* external_decoder_; const int samples_per_ms_; const size_t frame_size_samples_; rtc::scoped_ptr rtp_generator_; @@ -272,22 +272,22 @@ struct NetEqNetworkStatsCheck { int16_t output_[kMaxOutputSize]; }; -TEST(NetEqNetworkStatsTest, OpusDecodeFec) { - MockAudioDecoderOpus decoder(1); +TEST(NetEqNetworkStatsTest, DecodeFec) { + MockAudioDecoder decoder(1); NetEqNetworkStatsTest test(kDecoderOpus, &decoder); test.DecodeFecTest(); EXPECT_CALL(decoder, Die()).Times(1); } -TEST(NetEqNetworkStatsTest, StereoOpusDecodeFec) { - MockAudioDecoderOpus decoder(2); +TEST(NetEqNetworkStatsTest, StereoDecodeFec) { + MockAudioDecoder decoder(2); NetEqNetworkStatsTest test(kDecoderOpus, &decoder); test.DecodeFecTest(); EXPECT_CALL(decoder, Die()).Times(1); } TEST(NetEqNetworkStatsTest, NoiseExpansionTest) { - MockAudioDecoderOpus decoder(1); + MockAudioDecoder decoder(1); NetEqNetworkStatsTest test(kDecoderOpus, &decoder); test.NoiseExpansionTest(); EXPECT_CALL(decoder, Die()).Times(1); -- cgit v1.2.3