From 2519c45d00a5bd9b91930b74b35afb7d4b5bcbef Mon Sep 17 00:00:00 2001 From: Karl Wiberg Date: Tue, 7 Apr 2015 16:12:57 +0200 Subject: [PATCH] Fix clang style warnings in webrtc/modules/audio_coding Mostly this consists of marking functions with override when applicable, and moving function bodies from .h to .cc files. BUG=163 R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org Review URL: https://webrtc-codereview.appspot.com/44979004 Cr-Commit-Position: refs/heads/master@{#8938} --- webrtc/modules/audio_coding/BUILD.gn | 6 -- .../main/acm2/acm_generic_codec.cc | 2 + .../main/acm2/acm_generic_codec.h | 1 + .../main/acm2/audio_coding_module.cc | 11 +++ .../main/acm2/audio_coding_module_impl.cc | 22 +++++ .../main/acm2/audio_coding_module_impl.h | 21 ++--- webrtc/modules/audio_coding/main/acm2/nack.cc | 2 + webrtc/modules/audio_coding/main/acm2/nack.h | 2 +- .../main/interface/audio_coding_module.h | 10 +-- .../audio_coding/neteq/audio_decoder_impl.cc | 83 ++++++++++++++++++ .../audio_coding/neteq/audio_decoder_impl.h | 86 +++++++++---------- webrtc/modules/interface/module.h | 2 +- 12 files changed, 171 insertions(+), 77 deletions(-) diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn index d18ed6677..7a053a98f 100644 --- a/webrtc/modules/audio_coding/BUILD.gn +++ b/webrtc/modules/audio_coding/BUILD.gn @@ -51,12 +51,6 @@ source_set("audio_coding") { ":audio_coding_config", ] - if (is_clang) { - # Suppress warnings from Chrome's Clang plugins. - # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. - configs -= [ "//build/config/clang:find_bad_constructs" ] - } - if (is_win) { cflags = [ # TODO(kjellander): Bug 261: fix this warning. diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc index 6d7b09528..6b04081d3 100644 --- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc +++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc @@ -118,6 +118,8 @@ AudioDecoderProxy::AudioDecoderProxy() decoder_(nullptr) { } +AudioDecoderProxy::~AudioDecoderProxy() = default; + void AudioDecoderProxy::SetDecoder(AudioDecoder* decoder) { CriticalSectionScoped decoder_lock(decoder_lock_.get()); decoder_ = decoder; diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h index d491dfd40..d77543496 100644 --- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h +++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h @@ -45,6 +45,7 @@ class AcmReceiver; class AudioDecoderProxy final : public AudioDecoder { public: AudioDecoderProxy(); + ~AudioDecoderProxy() override; void SetDecoder(AudioDecoder* decoder); bool IsSet() const; int Decode(const uint8_t* encoded, diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc index 9b61d3348..f1d7a5d1c 100644 --- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc +++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc @@ -94,6 +94,17 @@ bool AudioCodingModule::IsCodecValid(const CodecInst& codec) { } } +AudioCoding::Config::Config() + : neteq_config(), + clock(Clock::GetRealTimeClock()), + transport(nullptr), + vad_callback(nullptr), + play_dtmf(true), + initial_playout_delay_ms(0), + playout_channels(1), + playout_frequency_hz(32000) { +} + AudioCoding* AudioCoding::Create(const Config& config) { return new AudioCodingImpl(config); } diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc index d78af65a6..4918d2149 100644 --- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc +++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.cc @@ -909,6 +909,14 @@ int AudioCodingModuleImpl::SetInitialPlayoutDelay(int delay_ms) { return receiver_.SetInitialDelay(delay_ms); } +int AudioCodingModuleImpl::SetDtmfPlayoutStatus(bool enable) { + return 0; +} + +bool AudioCodingModuleImpl::DtmfPlayoutStatus() const { + return true; +} + int AudioCodingModuleImpl::EnableNack(size_t max_nack_list_size) { return receiver_.EnableNack(max_nack_list_size); } @@ -933,6 +941,20 @@ void AudioCodingModuleImpl::GetDecodingCallStatistics( } // namespace acm2 +AudioCodingImpl::AudioCodingImpl(const Config& config) { + AudioCodingModule::Config config_old = config.ToOldConfig(); + acm_old_.reset(new acm2::AudioCodingModuleImpl(config_old)); + acm_old_->RegisterTransportCallback(config.transport); + acm_old_->RegisterVADCallback(config.vad_callback); + acm_old_->SetDtmfPlayoutStatus(config.play_dtmf); + if (config.initial_playout_delay_ms > 0) { + acm_old_->SetInitialPlayoutDelay(config.initial_playout_delay_ms); + } + playout_frequency_hz_ = config.playout_frequency_hz; +} + +AudioCodingImpl::~AudioCodingImpl() = default; + bool AudioCodingImpl::RegisterSendCodec(AudioEncoder* send_codec) { FATAL() << "Not implemented yet."; return false; diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h index 1e9cbb989..d307cda01 100644 --- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h +++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h @@ -37,7 +37,7 @@ class AudioCodingModuleImpl : public AudioCodingModule { friend webrtc::AudioCodingImpl; explicit AudioCodingModuleImpl(const AudioCodingModule::Config& config); - ~AudioCodingModuleImpl(); + ~AudioCodingModuleImpl() override; ///////////////////////////////////////// // Sender @@ -168,10 +168,10 @@ class AudioCodingModuleImpl : public AudioCodingModule { // // Configure Dtmf playout status i.e on/off playout the incoming outband Dtmf // tone. - int SetDtmfPlayoutStatus(bool enable) override { return 0; } + int SetDtmfPlayoutStatus(bool enable) override; // Get Dtmf playout status. - bool DtmfPlayoutStatus() const override { return true; } + bool DtmfPlayoutStatus() const override; // Estimate the Bandwidth based on the incoming stream, needed // for one way audio where the RTCP send the BW estimate. @@ -314,19 +314,8 @@ class AudioCodingModuleImpl : public AudioCodingModule { class AudioCodingImpl : public AudioCoding { public: - AudioCodingImpl(const Config& config) { - AudioCodingModule::Config config_old = config.ToOldConfig(); - acm_old_.reset(new acm2::AudioCodingModuleImpl(config_old)); - acm_old_->RegisterTransportCallback(config.transport); - acm_old_->RegisterVADCallback(config.vad_callback); - acm_old_->SetDtmfPlayoutStatus(config.play_dtmf); - if (config.initial_playout_delay_ms > 0) { - acm_old_->SetInitialPlayoutDelay(config.initial_playout_delay_ms); - } - playout_frequency_hz_ = config.playout_frequency_hz; - } - - ~AudioCodingImpl() override{}; + AudioCodingImpl(const Config& config); + ~AudioCodingImpl() override; bool RegisterSendCodec(AudioEncoder* send_codec) override; diff --git a/webrtc/modules/audio_coding/main/acm2/nack.cc b/webrtc/modules/audio_coding/main/acm2/nack.cc index 4324cd2e7..525b1ea8c 100644 --- a/webrtc/modules/audio_coding/main/acm2/nack.cc +++ b/webrtc/modules/audio_coding/main/acm2/nack.cc @@ -40,6 +40,8 @@ Nack::Nack(int nack_threshold_packets) samples_per_packet_(sample_rate_khz_ * kDefaultPacketSizeMs), max_nack_list_size_(kNackListSizeLimit) {} +Nack::~Nack() = default; + Nack* Nack::Create(int nack_threshold_packets) { return new Nack(nack_threshold_packets); } diff --git a/webrtc/modules/audio_coding/main/acm2/nack.h b/webrtc/modules/audio_coding/main/acm2/nack.h index 4224c99f7..1fb3e9b84 100644 --- a/webrtc/modules/audio_coding/main/acm2/nack.h +++ b/webrtc/modules/audio_coding/main/acm2/nack.h @@ -59,7 +59,7 @@ class Nack { // Factory method. static Nack* Create(int nack_threshold_packets); - ~Nack() {} + ~Nack(); // Set a maximum for the size of the NACK list. If the last received packet // has sequence number of N, then NACK list will not contain any element diff --git a/webrtc/modules/audio_coding/main/interface/audio_coding_module.h b/webrtc/modules/audio_coding/main/interface/audio_coding_module.h index 796444e78..0a147885b 100644 --- a/webrtc/modules/audio_coding/main/interface/audio_coding_module.h +++ b/webrtc/modules/audio_coding/main/interface/audio_coding_module.h @@ -997,15 +997,7 @@ class ReceiverInfo; class AudioCoding { public: struct Config { - Config() - : neteq_config(), - clock(Clock::GetRealTimeClock()), - transport(NULL), - vad_callback(NULL), - play_dtmf(true), - initial_playout_delay_ms(0), - playout_channels(1), - playout_frequency_hz(32000) {} + Config(); AudioCodingModule::Config ToOldConfig() const { AudioCodingModule::Config old_config; diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc index ce24e4a7e..c3f1dbbc8 100644 --- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc +++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc @@ -38,6 +38,14 @@ namespace webrtc { // PCMu + +int AudioDecoderPcmU::Init() { + return 0; +} +size_t AudioDecoderPcmU::Channels() const { + return 1; +} + int AudioDecoderPcmU::DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, @@ -57,7 +65,19 @@ int AudioDecoderPcmU::PacketDuration(const uint8_t* encoded, return static_cast(encoded_len / Channels()); } +size_t AudioDecoderPcmUMultiCh::Channels() const { + return channels_; +} + // PCMa + +int AudioDecoderPcmA::Init() { + return 0; +} +size_t AudioDecoderPcmA::Channels() const { + return 1; +} + int AudioDecoderPcmA::DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, @@ -77,10 +97,21 @@ int AudioDecoderPcmA::PacketDuration(const uint8_t* encoded, return static_cast(encoded_len / Channels()); } +size_t AudioDecoderPcmAMultiCh::Channels() const { + return channels_; +} + // PCM16B #ifdef WEBRTC_CODEC_PCM16 AudioDecoderPcm16B::AudioDecoderPcm16B() {} +int AudioDecoderPcm16B::Init() { + return 0; +} +size_t AudioDecoderPcm16B::Channels() const { + return 1; +} + int AudioDecoderPcm16B::DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, @@ -105,6 +136,10 @@ AudioDecoderPcm16BMultiCh::AudioDecoderPcm16BMultiCh(int num_channels) : channels_(num_channels) { DCHECK(num_channels > 0); } + +size_t AudioDecoderPcm16BMultiCh::Channels() const { + return channels_; +} #endif // iLBC @@ -117,6 +152,10 @@ AudioDecoderIlbc::~AudioDecoderIlbc() { WebRtcIlbcfix_DecoderFree(dec_state_); } +bool AudioDecoderIlbc::HasDecodePlc() const { + return true; +} + int AudioDecoderIlbc::DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, @@ -138,6 +177,10 @@ int AudioDecoderIlbc::DecodePlc(int num_frames, int16_t* decoded) { int AudioDecoderIlbc::Init() { return WebRtcIlbcfix_Decoderinit30Ms(dec_state_); } + +size_t AudioDecoderIlbc::Channels() const { + return 1; +} #endif // G.722 @@ -150,6 +193,10 @@ AudioDecoderG722::~AudioDecoderG722() { WebRtcG722_FreeDecoder(dec_state_); } +bool AudioDecoderG722::HasDecodePlc() const { + return false; +} + int AudioDecoderG722::DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, @@ -174,6 +221,10 @@ int AudioDecoderG722::PacketDuration(const uint8_t* encoded, return static_cast(2 * encoded_len / Channels()); } +size_t AudioDecoderG722::Channels() const { + return 1; +} + AudioDecoderG722Stereo::AudioDecoderG722Stereo() { WebRtcG722_CreateDecoder(&dec_state_left_); WebRtcG722_CreateDecoder(&dec_state_right_); @@ -222,6 +273,10 @@ int AudioDecoderG722Stereo::DecodeInternal(const uint8_t* encoded, return ret; } +size_t AudioDecoderG722Stereo::Channels() const { + return 2; +} + int AudioDecoderG722Stereo::Init() { int r = WebRtcG722_DecoderInit(dec_state_left_); if (r != 0) @@ -332,6 +387,10 @@ bool AudioDecoderOpus::PacketHasFec(const uint8_t* encoded, fec = WebRtcOpus_PacketHasFec(encoded, static_cast(encoded_len)); return (fec == 1); } + +size_t AudioDecoderOpus::Channels() const { + return channels_; +} #endif AudioDecoderCng::AudioDecoderCng() { @@ -346,6 +405,30 @@ int AudioDecoderCng::Init() { return WebRtcCng_InitDec(dec_state_); } +int AudioDecoderCng::IncomingPacket(const uint8_t* payload, + size_t payload_len, + uint16_t rtp_sequence_number, + uint32_t rtp_timestamp, + uint32_t arrival_timestamp) { + return -1; +} + +CNG_dec_inst* AudioDecoderCng::CngDecoderInstance() { + return dec_state_; +} + +size_t AudioDecoderCng::Channels() const { + return 1; +} + +int AudioDecoderCng::DecodeInternal(const uint8_t* encoded, + size_t encoded_len, + int sample_rate_hz, + int16_t* decoded, + SpeechType* speech_type) { + return -1; +} + bool CodecSupported(NetEqDecoder codec_type) { switch (codec_type) { case kDecoderPCMu: diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h index 5f9c35be5..202d79d8f 100644 --- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h +++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h @@ -37,9 +37,9 @@ namespace webrtc { class AudioDecoderPcmU : public AudioDecoder { public: AudioDecoderPcmU() {} - virtual int Init() { return 0; } - virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const; - size_t Channels() const override { return 1; } + int Init() override; + int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -55,9 +55,9 @@ class AudioDecoderPcmU : public AudioDecoder { class AudioDecoderPcmA : public AudioDecoder { public: AudioDecoderPcmA() {} - virtual int Init() { return 0; } - virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const; - size_t Channels() const override { return 1; } + int Init() override; + int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -76,7 +76,7 @@ class AudioDecoderPcmUMultiCh : public AudioDecoderPcmU { : AudioDecoderPcmU(), channels_(channels) { assert(channels > 0); } - size_t Channels() const override { return channels_; } + size_t Channels() const override; private: const size_t channels_; @@ -89,7 +89,7 @@ class AudioDecoderPcmAMultiCh : public AudioDecoderPcmA { : AudioDecoderPcmA(), channels_(channels) { assert(channels > 0); } - size_t Channels() const override { return channels_; } + size_t Channels() const override; private: const size_t channels_; @@ -102,9 +102,9 @@ class AudioDecoderPcmAMultiCh : public AudioDecoderPcmA { class AudioDecoderPcm16B : public AudioDecoder { public: AudioDecoderPcm16B(); - virtual int Init() { return 0; } - virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const; - size_t Channels() const override { return 1; } + int Init() override; + int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -123,7 +123,7 @@ class AudioDecoderPcm16B : public AudioDecoder { class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B { public: explicit AudioDecoderPcm16BMultiCh(int num_channels); - size_t Channels() const override { return channels_; } + size_t Channels() const override; private: const size_t channels_; @@ -135,11 +135,11 @@ class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B { class AudioDecoderIlbc : public AudioDecoder { public: AudioDecoderIlbc(); - virtual ~AudioDecoderIlbc(); - virtual bool HasDecodePlc() const { return true; } - virtual int DecodePlc(int num_frames, int16_t* decoded); - virtual int Init(); - size_t Channels() const override { return 1; } + ~AudioDecoderIlbc() override; + bool HasDecodePlc() const override; + int DecodePlc(int num_frames, int16_t* decoded) override; + int Init() override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -158,11 +158,11 @@ class AudioDecoderIlbc : public AudioDecoder { class AudioDecoderG722 : public AudioDecoder { public: AudioDecoderG722(); - virtual ~AudioDecoderG722(); - virtual bool HasDecodePlc() const { return false; } - virtual int Init(); - virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const; - size_t Channels() const override { return 1; } + ~AudioDecoderG722() override; + bool HasDecodePlc() const override; + int Init() override; + int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -179,8 +179,8 @@ class AudioDecoderG722 : public AudioDecoder { class AudioDecoderG722Stereo : public AudioDecoder { public: AudioDecoderG722Stereo(); - virtual ~AudioDecoderG722Stereo(); - virtual int Init(); + ~AudioDecoderG722Stereo() override; + int Init() override; protected: int DecodeInternal(const uint8_t* encoded, @@ -188,7 +188,7 @@ class AudioDecoderG722Stereo : public AudioDecoder { int sample_rate_hz, int16_t* decoded, SpeechType* speech_type) override; - size_t Channels() const override { return 2; } + size_t Channels() const override; private: // Splits the stereo-interleaved payload in |encoded| into separate payloads @@ -210,14 +210,14 @@ class AudioDecoderG722Stereo : public AudioDecoder { class AudioDecoderOpus : public AudioDecoder { public: explicit AudioDecoderOpus(int num_channels); - virtual ~AudioDecoderOpus(); + ~AudioDecoderOpus() override; - virtual int Init(); - virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const; - virtual int PacketDurationRedundant(const uint8_t* encoded, - size_t encoded_len) const; - virtual bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const; - size_t Channels() const override { return channels_; } + int Init() override; + int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; + int PacketDurationRedundant(const uint8_t* encoded, + size_t encoded_len) const override; + bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, @@ -247,25 +247,23 @@ class AudioDecoderOpus : public AudioDecoder { class AudioDecoderCng : public AudioDecoder { public: explicit AudioDecoderCng(); - virtual ~AudioDecoderCng(); - virtual int Init(); - virtual int IncomingPacket(const uint8_t* payload, - size_t payload_len, - uint16_t rtp_sequence_number, - uint32_t rtp_timestamp, - uint32_t arrival_timestamp) { return -1; } + ~AudioDecoderCng() override; + int Init() override; + int IncomingPacket(const uint8_t* payload, + size_t payload_len, + uint16_t rtp_sequence_number, + uint32_t rtp_timestamp, + uint32_t arrival_timestamp) override; - CNG_dec_inst* CngDecoderInstance() override { return dec_state_; } - size_t Channels() const override { return 1; } + CNG_dec_inst* CngDecoderInstance() override; + size_t Channels() const override; protected: int DecodeInternal(const uint8_t* encoded, size_t encoded_len, int sample_rate_hz, int16_t* decoded, - SpeechType* speech_type) override { - return -1; - } + SpeechType* speech_type) override; private: CNG_dec_inst* dec_state_; diff --git a/webrtc/modules/interface/module.h b/webrtc/modules/interface/module.h index a83f148cf..529138de4 100644 --- a/webrtc/modules/interface/module.h +++ b/webrtc/modules/interface/module.h @@ -73,7 +73,7 @@ class RefCountedModule : public Module { virtual int32_t Release() = 0; protected: - virtual ~RefCountedModule() {} + ~RefCountedModule() override = default; }; } // namespace webrtc