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}
This commit is contained in:
Karl Wiberg 2015-04-07 16:12:57 +02:00
parent f6b7265c6b
commit 2519c45d00
12 changed files with 171 additions and 77 deletions

View File

@ -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.

View File

@ -118,6 +118,8 @@ AudioDecoderProxy::AudioDecoderProxy()
decoder_(nullptr) {
}
AudioDecoderProxy::~AudioDecoderProxy() = default;
void AudioDecoderProxy::SetDecoder(AudioDecoder* decoder) {
CriticalSectionScoped decoder_lock(decoder_lock_.get());
decoder_ = decoder;

View File

@ -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,

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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);
}

View File

@ -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

View File

@ -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;

View File

@ -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<int>(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<int>(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<int>(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<int>(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:

View File

@ -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_;

View File

@ -73,7 +73,7 @@ class RefCountedModule : public Module {
virtual int32_t Release() = 0;
protected:
virtual ~RefCountedModule() {}
~RefCountedModule() override = default;
};
} // namespace webrtc