diff options
author | kwiberg <kwiberg@webrtc.org> | 2015-09-22 14:06:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-22 21:06:34 +0000 |
commit | 8967183bf79322c5cb3cbd99e9b7aa298228d0a2 (patch) | |
tree | 91729ccf68dd93ac5d90f4586011a481533b02e1 /webrtc/modules/audio_coding/codecs | |
parent | c1a1b353ec96a92f8b88dba5a058af8744e81560 (diff) | |
download | webrtc-8967183bf79322c5cb3cbd99e9b7aa298228d0a2.tar.gz |
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}
Diffstat (limited to 'webrtc/modules/audio_coding/codecs')
17 files changed, 47 insertions, 70 deletions
diff --git a/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h b/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h index b025bc2e44..3ca9eb60f3 100644 --- a/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h +++ b/webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h @@ -86,7 +86,10 @@ class AudioEncoderCng final : public AudioEncoder { bool last_frame_active_; rtc::scoped_ptr<Vad> vad_; rtc::scoped_ptr<CNG_enc_inst, CngInstDeleter> cng_inst_; + + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderCng); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_CNG_INCLUDE_AUDIO_ENCODER_CNG_H_ diff --git a/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc b/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc index b273b18e18..12306d9167 100644 --- a/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc +++ b/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc @@ -17,7 +17,7 @@ namespace webrtc { void AudioDecoderPcmU::Reset() {} size_t AudioDecoderPcmU::Channels() const { - return 1; + return num_channels_; } int AudioDecoderPcmU::DecodeInternal(const uint8_t* encoded, @@ -38,14 +38,10 @@ int AudioDecoderPcmU::PacketDuration(const uint8_t* encoded, return static_cast<int>(encoded_len / Channels()); } -size_t AudioDecoderPcmUMultiCh::Channels() const { - return channels_; -} - void AudioDecoderPcmA::Reset() {} size_t AudioDecoderPcmA::Channels() const { - return 1; + return num_channels_; } int AudioDecoderPcmA::DecodeInternal(const uint8_t* encoded, @@ -66,8 +62,4 @@ int AudioDecoderPcmA::PacketDuration(const uint8_t* encoded, return static_cast<int>(encoded_len / Channels()); } -size_t AudioDecoderPcmAMultiCh::Channels() const { - return channels_; -} - } // namespace webrtc diff --git a/webrtc/modules/audio_coding/codecs/g711/include/audio_decoder_pcm.h b/webrtc/modules/audio_coding/codecs/g711/include/audio_decoder_pcm.h index 4f82603ba6..7bc37d3b7a 100644 --- a/webrtc/modules/audio_coding/codecs/g711/include/audio_decoder_pcm.h +++ b/webrtc/modules/audio_coding/codecs/g711/include/audio_decoder_pcm.h @@ -16,9 +16,11 @@ namespace webrtc { -class AudioDecoderPcmU : public AudioDecoder { +class AudioDecoderPcmU final : public AudioDecoder { public: - AudioDecoderPcmU() {} + explicit AudioDecoderPcmU(size_t num_channels) : num_channels_(num_channels) { + RTC_DCHECK_GE(num_channels, 1u); + } void Reset() override; int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; size_t Channels() const override; @@ -31,12 +33,15 @@ class AudioDecoderPcmU : public AudioDecoder { SpeechType* speech_type) override; private: + const size_t num_channels_; RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmU); }; -class AudioDecoderPcmA : public AudioDecoder { +class AudioDecoderPcmA final : public AudioDecoder { public: - AudioDecoderPcmA() {} + explicit AudioDecoderPcmA(size_t num_channels) : num_channels_(num_channels) { + RTC_DCHECK_GE(num_channels, 1u); + } void Reset() override; int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; size_t Channels() const override; @@ -49,34 +54,10 @@ class AudioDecoderPcmA : public AudioDecoder { SpeechType* speech_type) override; private: + const size_t num_channels_; RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmA); }; -class AudioDecoderPcmUMultiCh : public AudioDecoderPcmU { - public: - explicit AudioDecoderPcmUMultiCh(size_t channels) - : AudioDecoderPcmU(), channels_(channels) { - RTC_DCHECK_GT(channels, 0u); - } - size_t Channels() const override; - - private: - const size_t channels_; - RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmUMultiCh); -}; - -class AudioDecoderPcmAMultiCh : public AudioDecoderPcmA { - public: - explicit AudioDecoderPcmAMultiCh(size_t channels) - : AudioDecoderPcmA(), channels_(channels) { - RTC_DCHECK_GT(channels, 0u); - } - size_t Channels() const override; - - private: - const size_t channels_; - RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmAMultiCh); -}; - } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_G711_INCLUDE_AUDIO_DECODER_PCM_H_ diff --git a/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h b/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h index c2788f14d6..e532f9b1bc 100644 --- a/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h +++ b/webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h @@ -87,6 +87,7 @@ class AudioEncoderPcmA final : public AudioEncoderPcm { private: static const int kSampleRateHz = 8000; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcmA); }; class AudioEncoderPcmU final : public AudioEncoderPcm { @@ -108,7 +109,9 @@ class AudioEncoderPcmU final : public AudioEncoderPcm { private: static const int kSampleRateHz = 8000; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcmU); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_G711_INCLUDE_AUDIO_ENCODER_PCM_H_ diff --git a/webrtc/modules/audio_coding/codecs/g722/include/audio_decoder_g722.h b/webrtc/modules/audio_coding/codecs/g722/include/audio_decoder_g722.h index 4f0d8eae3a..b9fa68fc48 100644 --- a/webrtc/modules/audio_coding/codecs/g722/include/audio_decoder_g722.h +++ b/webrtc/modules/audio_coding/codecs/g722/include/audio_decoder_g722.h @@ -17,7 +17,7 @@ typedef struct WebRtcG722DecInst G722DecInst; namespace webrtc { -class AudioDecoderG722 : public AudioDecoder { +class AudioDecoderG722 final : public AudioDecoder { public: AudioDecoderG722(); ~AudioDecoderG722() override; @@ -38,7 +38,7 @@ class AudioDecoderG722 : public AudioDecoder { RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderG722); }; -class AudioDecoderG722Stereo : public AudioDecoder { +class AudioDecoderG722Stereo final : public AudioDecoder { public: AudioDecoderG722Stereo(); ~AudioDecoderG722Stereo() override; @@ -64,9 +64,9 @@ class AudioDecoderG722Stereo : public AudioDecoder { G722DecInst* dec_state_left_; G722DecInst* dec_state_right_; - RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderG722Stereo); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_G722_INCLUDE_AUDIO_DECODER_G722_H_ diff --git a/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h b/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h index 36f809a9dd..12495c5f48 100644 --- a/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h +++ b/webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h @@ -66,6 +66,7 @@ class AudioEncoderG722 final : public AudioEncoder { uint32_t first_timestamp_in_buffer_; const rtc::scoped_ptr<EncoderState[]> encoders_; rtc::Buffer interleave_buffer_; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderG722); }; } // namespace webrtc diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_decoder_ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_decoder_ilbc.h index ada73e5635..a03a068a39 100644 --- a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_decoder_ilbc.h +++ b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_decoder_ilbc.h @@ -17,7 +17,7 @@ typedef struct iLBC_decinst_t_ IlbcDecoderInstance; namespace webrtc { -class AudioDecoderIlbc : public AudioDecoder { +class AudioDecoderIlbc final : public AudioDecoder { public: AudioDecoderIlbc(); ~AudioDecoderIlbc() override; diff --git a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h index 7e7e898ddf..0316d2d4c5 100644 --- a/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h +++ b/webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h @@ -56,6 +56,7 @@ class AudioEncoderIlbc final : public AudioEncoder { uint32_t first_timestamp_in_buffer_; int16_t input_buffer_[kMaxSamplesPerPacket]; IlbcEncoderInstance* encoder_; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderIlbc); }; } // namespace webrtc diff --git a/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h b/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h index 714fe2d22a..845af42479 100644 --- a/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h +++ b/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h @@ -50,4 +50,5 @@ class AudioDecoderIsacT final : public AudioDecoder { }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_AUDIO_DECODER_ISAC_T_H_ diff --git a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h index 6b361b4146..762757ace7 100644 --- a/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h +++ b/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h @@ -94,4 +94,5 @@ class AudioEncoderIsacT final : public AudioEncoder { }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_AUDIO_ENCODER_ISAC_T_H_ diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc index 4e44b9afec..64742eea4e 100644 --- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc +++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc @@ -9,6 +9,7 @@ */ #include "testing/gtest/include/gtest/gtest.h" +#include "webrtc/base/checks.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/common_types.h" #include "webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h" diff --git a/webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h index 4dd515714d..d28113b778 100644 --- a/webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h +++ b/webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h @@ -16,7 +16,7 @@ namespace webrtc { -class AudioDecoderOpus : public AudioDecoder { +class AudioDecoderOpus final : public AudioDecoder { public: explicit AudioDecoderOpus(size_t num_channels); ~AudioDecoderOpus() override; diff --git a/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h index 1b7e752694..9659a2bbd3 100644 --- a/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h +++ b/webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h @@ -13,8 +13,7 @@ #include <vector> -#include "webrtc/base/checks.h" -#include "webrtc/base/scoped_ptr.h" +#include "webrtc/base/constructormagic.h" #include "webrtc/modules/audio_coding/codecs/opus/interface/opus_interface.h" #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" @@ -95,7 +94,9 @@ class AudioEncoderOpus final : public AudioEncoder { std::vector<int16_t> input_buffer_; OpusEncInst* inst_; uint32_t first_timestamp_in_buffer_; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderOpus); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_OPUS_INTERFACE_AUDIO_ENCODER_OPUS_H_ diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc b/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc index 90359a8768..7d07b23a3c 100644 --- a/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc +++ b/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc @@ -15,12 +15,15 @@ namespace webrtc { -AudioDecoderPcm16B::AudioDecoderPcm16B() {} +AudioDecoderPcm16B::AudioDecoderPcm16B(size_t num_channels) + : num_channels_(num_channels) { + RTC_DCHECK_GE(num_channels, 1u); +} void AudioDecoderPcm16B::Reset() {} size_t AudioDecoderPcm16B::Channels() const { - return 1; + return num_channels_; } int AudioDecoderPcm16B::DecodeInternal(const uint8_t* encoded, @@ -42,13 +45,4 @@ int AudioDecoderPcm16B::PacketDuration(const uint8_t* encoded, return static_cast<int>(encoded_len / (2 * Channels())); } -AudioDecoderPcm16BMultiCh::AudioDecoderPcm16BMultiCh(size_t num_channels) - : channels_(num_channels) { - RTC_DCHECK(num_channels > 0); -} - -size_t AudioDecoderPcm16BMultiCh::Channels() const { - return channels_; -} - } // namespace webrtc diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_decoder_pcm16b.h b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_decoder_pcm16b.h index 6814c307a9..96131c4d21 100644 --- a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_decoder_pcm16b.h +++ b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_decoder_pcm16b.h @@ -16,9 +16,9 @@ namespace webrtc { -class AudioDecoderPcm16B : public AudioDecoder { +class AudioDecoderPcm16B final : public AudioDecoder { public: - AudioDecoderPcm16B(); + explicit AudioDecoderPcm16B(size_t num_channels); void Reset() override; int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; size_t Channels() const override; @@ -31,18 +31,10 @@ class AudioDecoderPcm16B : public AudioDecoder { SpeechType* speech_type) override; private: + const size_t num_channels_; RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcm16B); }; -class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B { - public: - explicit AudioDecoderPcm16BMultiCh(size_t num_channels); - size_t Channels() const override; - - private: - const size_t channels_; - RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcm16BMultiCh); -}; - } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_INCLUDE_AUDIO_DECODER_PCM16B_H_ diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h index 5d368bce7a..e03da213df 100644 --- a/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h +++ b/webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h @@ -38,7 +38,11 @@ class AudioEncoderPcm16B final : public AudioEncoderPcm { uint8_t* encoded) override; int BytesPerSample() const override; + +private: + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcm16B); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_INCLUDE_AUDIO_ENCODER_PCM16B_H_ diff --git a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h index 1d35f95877..7837010605 100644 --- a/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h +++ b/webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h @@ -60,7 +60,9 @@ class AudioEncoderCopyRed final : public AudioEncoder { int red_payload_type_; rtc::Buffer secondary_encoded_; EncodedInfoLeaf secondary_info_; + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderCopyRed); }; } // namespace webrtc + #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_RED_AUDIO_ENCODER_COPY_RED_H_ |