Index: webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc |
diff --git a/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc b/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc |
index ba5959dbcd5c32571e7ab53db0af2c1f4034437f..f7812b34f7db9082c6f23449df3532a52d7bc15a 100644 |
--- a/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc |
+++ b/webrtc/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc |
@@ -19,6 +19,7 @@ |
namespace webrtc { |
namespace { |
+ |
int16_t NumSamplesPerFrame(int num_channels, |
int frame_size_ms, |
int sample_rate_hz) { |
@@ -27,6 +28,16 @@ int16_t NumSamplesPerFrame(int num_channels, |
<< "Frame size too large."; |
return static_cast<int16_t>(samples_per_frame); |
} |
+ |
+template <typename T> |
+typename T::Config CreateConfig(const CodecInst& codec_inst) { |
+ typename T::Config config; |
+ config.frame_size_ms = codec_inst.pacsize / 8; |
+ config.num_channels = codec_inst.channels; |
+ config.payload_type = codec_inst.pltype; |
+ return config; |
+} |
+ |
} // namespace |
bool AudioEncoderPcm::Config::IsOk() const { |
@@ -49,7 +60,10 @@ AudioEncoderPcm::AudioEncoderPcm(const Config& config, int sample_rate_hz) |
speech_buffer_.reserve(full_frame_samples_); |
} |
-AudioEncoderPcm::~AudioEncoderPcm() { |
+AudioEncoderPcm::~AudioEncoderPcm() = default; |
+ |
+size_t AudioEncoderPcm::MaxEncodedBytes() const { |
+ return full_frame_samples_ * BytesPerSample(); |
} |
int AudioEncoderPcm::SampleRateHz() const { |
@@ -60,10 +74,6 @@ int AudioEncoderPcm::NumChannels() const { |
return num_channels_; |
} |
-size_t AudioEncoderPcm::MaxEncodedBytes() const { |
- return full_frame_samples_ * BytesPerSample(); |
-} |
- |
size_t AudioEncoderPcm::Num10MsFramesInNextPacket() const { |
return num_10ms_frames_per_packet_; |
} |
@@ -102,6 +112,13 @@ AudioEncoder::EncodedInfo AudioEncoderPcm::EncodeInternal( |
return info; |
} |
+void AudioEncoderPcm::Reset() { |
+ speech_buffer_.clear(); |
+} |
+ |
+AudioEncoderPcmA::AudioEncoderPcmA(const CodecInst& codec_inst) |
+ : AudioEncoderPcmA(CreateConfig<AudioEncoderPcmA>(codec_inst)) {} |
+ |
size_t AudioEncoderPcmA::EncodeCall(const int16_t* audio, |
size_t input_len, |
uint8_t* encoded) { |
@@ -112,6 +129,9 @@ int AudioEncoderPcmA::BytesPerSample() const { |
return 1; |
} |
+AudioEncoderPcmU::AudioEncoderPcmU(const CodecInst& codec_inst) |
+ : AudioEncoderPcmU(CreateConfig<AudioEncoderPcmU>(codec_inst)) {} |
+ |
size_t AudioEncoderPcmU::EncodeCall(const int16_t* audio, |
size_t input_len, |
uint8_t* encoded) { |
@@ -122,25 +142,4 @@ int AudioEncoderPcmU::BytesPerSample() const { |
return 1; |
} |
-namespace { |
-template <typename T> |
-typename T::Config CreateConfig(const CodecInst& codec_inst) { |
- typename T::Config config; |
- config.frame_size_ms = codec_inst.pacsize / 8; |
- config.num_channels = codec_inst.channels; |
- config.payload_type = codec_inst.pltype; |
- return config; |
-} |
-} // namespace |
- |
-AudioEncoderMutablePcmU::AudioEncoderMutablePcmU(const CodecInst& codec_inst) |
- : AudioEncoderMutableImpl<AudioEncoderPcmU>( |
- CreateConfig<AudioEncoderPcmU>(codec_inst)) { |
-} |
- |
-AudioEncoderMutablePcmA::AudioEncoderMutablePcmA(const CodecInst& codec_inst) |
- : AudioEncoderMutableImpl<AudioEncoderPcmA>( |
- CreateConfig<AudioEncoderPcmA>(codec_inst)) { |
-} |
- |
} // namespace webrtc |