Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc

Issue 1322973004: Fold AudioEncoderMutable into AudioEncoder (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: review fixes Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
diff --git a/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc b/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
index 9eb7a11524d4b13fcd1a23c82c9e0387f35fa99f..6df5430cba7c2f853c0b6e156a8ec62fafbf6bf6 100644
--- a/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
+++ b/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
@@ -21,6 +21,14 @@ namespace {
const size_t kSampleRateHz = 16000;
+AudioEncoderG722::Config CreateConfig(const CodecInst& codec_inst) {
+ AudioEncoderG722::Config config;
+ config.num_channels = codec_inst.channels;
+ config.frame_size_ms = codec_inst.pacsize / 16;
+ config.payload_type = codec_inst.pltype;
+ return config;
+}
+
} // namespace
bool AudioEncoderG722::Config::IsOk() const {
@@ -28,15 +36,6 @@ bool AudioEncoderG722::Config::IsOk() const {
(num_channels >= 1);
}
-AudioEncoderG722::EncoderState::EncoderState() {
- CHECK_EQ(0, WebRtcG722_CreateEncoder(&encoder));
- CHECK_EQ(0, WebRtcG722_EncoderInit(encoder));
-}
-
-AudioEncoderG722::EncoderState::~EncoderState() {
- CHECK_EQ(0, WebRtcG722_FreeEncoder(encoder));
-}
-
AudioEncoderG722::AudioEncoderG722(const Config& config)
: num_channels_(config.num_channels),
payload_type_(config.payload_type),
@@ -53,26 +52,30 @@ AudioEncoderG722::AudioEncoderG722(const Config& config)
encoders_[i].speech_buffer.reset(new int16_t[samples_per_channel]);
encoders_[i].encoded_buffer.SetSize(samples_per_channel / 2);
}
+ Reset();
}
-AudioEncoderG722::~AudioEncoderG722() {}
+AudioEncoderG722::AudioEncoderG722(const CodecInst& codec_inst)
+ : AudioEncoderG722(CreateConfig(codec_inst)) {}
-int AudioEncoderG722::SampleRateHz() const {
- return kSampleRateHz;
+AudioEncoderG722::~AudioEncoderG722() = default;
+
+size_t AudioEncoderG722::MaxEncodedBytes() const {
+ return SamplesPerChannel() / 2 * num_channels_;
}
-int AudioEncoderG722::RtpTimestampRateHz() const {
- // The RTP timestamp rate for G.722 is 8000 Hz, even though it is a 16 kHz
- // codec.
- return kSampleRateHz / 2;
+int AudioEncoderG722::SampleRateHz() const {
+ return kSampleRateHz;
}
int AudioEncoderG722::NumChannels() const {
return num_channels_;
}
-size_t AudioEncoderG722::MaxEncodedBytes() const {
- return SamplesPerChannel() / 2 * num_channels_;
+int AudioEncoderG722::RtpTimestampRateHz() const {
+ // The RTP timestamp rate for G.722 is 8000 Hz, even though it is a 16 kHz
+ // codec.
+ return kSampleRateHz / 2;
}
size_t AudioEncoderG722::Num10MsFramesInNextPacket() const {
@@ -116,7 +119,7 @@ AudioEncoder::EncodedInfo AudioEncoderG722::EncodeInternal(
for (int i = 0; i < num_channels_; ++i) {
const size_t encoded = WebRtcG722_Encode(
encoders_[i].encoder, encoders_[i].speech_buffer.get(),
- samples_per_channel, encoders_[i].encoded_buffer.data<uint8_t>());
+ samples_per_channel, encoders_[i].encoded_buffer.data());
CHECK_EQ(encoded, samples_per_channel / 2);
}
@@ -140,22 +143,22 @@ AudioEncoder::EncodedInfo AudioEncoderG722::EncodeInternal(
return info;
}
-size_t AudioEncoderG722::SamplesPerChannel() const {
- return kSampleRateHz / 100 * num_10ms_frames_per_packet_;
+void AudioEncoderG722::Reset() {
+ num_10ms_frames_buffered_ = 0;
+ for (int i = 0; i < num_channels_; ++i)
+ CHECK_EQ(0, WebRtcG722_EncoderInit(encoders_[i].encoder));
}
-namespace {
-AudioEncoderG722::Config CreateConfig(const CodecInst& codec_inst) {
- AudioEncoderG722::Config config;
- config.num_channels = codec_inst.channels;
- config.frame_size_ms = codec_inst.pacsize / 16;
- config.payload_type = codec_inst.pltype;
- return config;
+AudioEncoderG722::EncoderState::EncoderState() {
+ CHECK_EQ(0, WebRtcG722_CreateEncoder(&encoder));
}
-} // namespace
-AudioEncoderMutableG722::AudioEncoderMutableG722(const CodecInst& codec_inst)
- : AudioEncoderMutableImpl<AudioEncoderG722>(CreateConfig(codec_inst)) {
+AudioEncoderG722::EncoderState::~EncoderState() {
+ CHECK_EQ(0, WebRtcG722_FreeEncoder(encoder));
+}
+
+size_t AudioEncoderG722::SamplesPerChannel() const {
+ return kSampleRateHz / 100 * num_10ms_frames_per_packet_;
}
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698