aboutsummaryrefslogtreecommitdiff
path: root/webrtc/modules/audio_coding/codecs
diff options
context:
space:
mode:
authorkwiberg <kwiberg@webrtc.org>2015-09-22 14:06:29 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-22 21:06:34 +0000
commit8967183bf79322c5cb3cbd99e9b7aa298228d0a2 (patch)
tree91729ccf68dd93ac5d90f4586011a481533b02e1 /webrtc/modules/audio_coding/codecs
parentc1a1b353ec96a92f8b88dba5a058af8744e81560 (diff)
downloadwebrtc-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')
-rw-r--r--webrtc/modules/audio_coding/codecs/cng/include/audio_encoder_cng.h3
-rw-r--r--webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc12
-rw-r--r--webrtc/modules/audio_coding/codecs/g711/include/audio_decoder_pcm.h41
-rw-r--r--webrtc/modules/audio_coding/codecs/g711/include/audio_encoder_pcm.h3
-rw-r--r--webrtc/modules/audio_coding/codecs/g722/include/audio_decoder_g722.h6
-rw-r--r--webrtc/modules/audio_coding/codecs/g722/include/audio_encoder_g722.h1
-rw-r--r--webrtc/modules/audio_coding/codecs/ilbc/interface/audio_decoder_ilbc.h2
-rw-r--r--webrtc/modules/audio_coding/codecs/ilbc/interface/audio_encoder_ilbc.h1
-rw-r--r--webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h1
-rw-r--r--webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h1
-rw-r--r--webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc1
-rw-r--r--webrtc/modules/audio_coding/codecs/opus/interface/audio_decoder_opus.h2
-rw-r--r--webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h5
-rw-r--r--webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc16
-rw-r--r--webrtc/modules/audio_coding/codecs/pcm16b/include/audio_decoder_pcm16b.h16
-rw-r--r--webrtc/modules/audio_coding/codecs/pcm16b/include/audio_encoder_pcm16b.h4
-rw-r--r--webrtc/modules/audio_coding/codecs/red/audio_encoder_copy_red.h2
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_