Index: remoting/codec/audio_encoder_opus.cc |
diff --git a/remoting/codec/audio_encoder_opus.cc b/remoting/codec/audio_encoder_opus.cc |
index 15160df75f5b0a2764137245ad472f14deb3e8d6..2efcf90f74c84cc16fc3ff595e5c6db7fce217c4 100644 |
--- a/remoting/codec/audio_encoder_opus.cc |
+++ b/remoting/codec/audio_encoder_opus.cc |
@@ -77,9 +77,12 @@ void AudioEncoderOpus::InitEncoder() { |
if (sampling_rate_ != kOpusSamplingRate) { |
resample_buffer_.reset( |
new char[kFrameSamples * kBytesPerSample * channels_]); |
+ // TODO(sergeyu): Figure out the right buffer size to use per packet instead |
+ // of using media::SincResampler::kDefaultRequestSize. |
resampler_.reset(new media::MultiChannelResampler( |
channels_, |
static_cast<double>(sampling_rate_) / kOpusSamplingRate, |
+ media::SincResampler::kDefaultRequestSize, |
base::Bind(&AudioEncoderOpus::FetchBytesToResample, |
base::Unretained(this)))); |
resampler_bus_ = media::AudioBus::Create(channels_, kFrameSamples); |
@@ -88,7 +91,7 @@ void AudioEncoderOpus::InitEncoder() { |
// Drop leftover data because it's for different sampling rate. |
leftover_samples_ = 0; |
leftover_buffer_size_ = |
- frame_size_ + media::SincResampler::kMaximumLookAheadSize; |
+ frame_size_ + media::SincResampler::kDefaultRequestSize; |
leftover_buffer_.reset( |
new int16[leftover_buffer_size_ * channels_]); |
} |
@@ -159,7 +162,7 @@ scoped_ptr<AudioPacket> AudioEncoderOpus::Encode( |
encoded_packet->set_channels(channels_); |
int prefetch_samples = |
- resampler_.get() ? media::SincResampler::kMaximumLookAheadSize : 0; |
+ resampler_.get() ? media::SincResampler::kDefaultRequestSize : 0; |
int samples_wanted = frame_size_ + prefetch_samples; |
while (leftover_samples_ + samples_in_packet >= samples_wanted) { |
@@ -181,7 +184,7 @@ scoped_ptr<AudioPacket> AudioEncoderOpus::Encode( |
resampling_data_ = reinterpret_cast<const char*>(pcm_buffer); |
resampling_data_pos_ = 0; |
resampling_data_size_ = samples_wanted * channels_ * kBytesPerSample; |
- resampler_->Resample(resampler_bus_.get(), kFrameSamples); |
+ resampler_->Resample(kFrameSamples, resampler_bus_.get()); |
resampling_data_ = NULL; |
samples_consumed = resampling_data_pos_ / channels_ / kBytesPerSample; |