diff options
Diffstat (limited to 'webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc')
-rw-r--r-- | webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index eac7412178..707d6c2488 100644 --- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc @@ -8,12 +8,12 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "webrtc/modules/audio_coding/codecs/opus/include/audio_encoder_opus.h" +#include "webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h" #include "webrtc/base/checks.h" #include "webrtc/base/safe_conversions.h" #include "webrtc/common_types.h" -#include "webrtc/modules/audio_coding/codecs/opus/include/opus_interface.h" +#include "webrtc/modules/audio_coding/codecs/opus/opus_interface.h" namespace webrtc { @@ -114,7 +114,7 @@ int AudioEncoderOpus::SampleRateHz() const { return kSampleRateHz; } -int AudioEncoderOpus::NumChannels() const { +size_t AudioEncoderOpus::NumChannels() const { return config_.num_channels; } @@ -132,24 +132,22 @@ int AudioEncoderOpus::GetTargetBitrate() const { AudioEncoder::EncodedInfo AudioEncoderOpus::EncodeInternal( uint32_t rtp_timestamp, - const int16_t* audio, + rtc::ArrayView<const int16_t> audio, size_t max_encoded_bytes, uint8_t* encoded) { if (input_buffer_.empty()) first_timestamp_in_buffer_ = rtp_timestamp; - input_buffer_.insert(input_buffer_.end(), audio, - audio + SamplesPer10msFrame()); + RTC_DCHECK_EQ(SamplesPer10msFrame(), audio.size()); + input_buffer_.insert(input_buffer_.end(), audio.cbegin(), audio.cend()); if (input_buffer_.size() < - (static_cast<size_t>(Num10msFramesPerPacket()) * SamplesPer10msFrame())) { + (Num10msFramesPerPacket() * SamplesPer10msFrame())) { return EncodedInfo(); } - RTC_CHECK_EQ( - input_buffer_.size(), - static_cast<size_t>(Num10msFramesPerPacket()) * SamplesPer10msFrame()); + RTC_CHECK_EQ(input_buffer_.size(), + Num10msFramesPerPacket() * SamplesPer10msFrame()); int status = WebRtcOpus_Encode( inst_, &input_buffer_[0], - rtc::CheckedDivExact(input_buffer_.size(), - static_cast<size_t>(config_.num_channels)), + rtc::CheckedDivExact(input_buffer_.size(), config_.num_channels), rtc::saturated_cast<int16_t>(max_encoded_bytes), encoded); RTC_CHECK_GE(status, 0); // Fails only if fed invalid data. input_buffer_.clear(); @@ -214,11 +212,11 @@ void AudioEncoderOpus::SetTargetBitrate(int bits_per_second) { RTC_CHECK_EQ(0, WebRtcOpus_SetBitRate(inst_, config_.bitrate_bps)); } -int AudioEncoderOpus::Num10msFramesPerPacket() const { - return rtc::CheckedDivExact(config_.frame_size_ms, 10); +size_t AudioEncoderOpus::Num10msFramesPerPacket() const { + return static_cast<size_t>(rtc::CheckedDivExact(config_.frame_size_ms, 10)); } -int AudioEncoderOpus::SamplesPer10msFrame() const { +size_t AudioEncoderOpus::SamplesPer10msFrame() const { return rtc::CheckedDivExact(kSampleRateHz, 100) * config_.num_channels; } |