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

Unified Diff: media/base/audio_converter.cc

Issue 177333003: Add support for midstream audio configuration changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ABS
Patch Set: Created 6 years, 9 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: media/base/audio_converter.cc
diff --git a/media/base/audio_converter.cc b/media/base/audio_converter.cc
index cdc6642b5f18f28a205f43def5321365f669b77b..81f9dc6396131ed747cfabc2f1020a5a63eda892 100644
--- a/media/base/audio_converter.cc
+++ b/media/base/audio_converter.cc
@@ -28,7 +28,9 @@ AudioConverter::AudioConverter(const AudioParameters& input_params,
: chunk_size_(output_params.frames_per_buffer()),
downmix_early_(false),
resampler_frame_delay_(0),
- input_channel_count_(input_params.channels()) {
+ input_channel_count_(input_params.channels()),
+ io_sample_rate_ratio_(input_params.sample_rate() /
+ static_cast<double>(output_params.sample_rate())) {
CHECK(input_params.IsValid());
CHECK(output_params.IsValid());
@@ -48,14 +50,12 @@ AudioConverter::AudioConverter(const AudioParameters& input_params,
if (input_params.sample_rate() != output_params.sample_rate()) {
DVLOG(1) << "Resampling from " << input_params.sample_rate() << " to "
<< output_params.sample_rate();
- const double io_sample_rate_ratio = input_params.sample_rate() /
- static_cast<double>(output_params.sample_rate());
const int request_size = disable_fifo ? SincResampler::kDefaultRequestSize :
input_params.frames_per_buffer();
resampler_.reset(new MultiChannelResampler(
downmix_early_ ? output_params.channels() :
input_params.channels(),
- io_sample_rate_ratio, request_size, base::Bind(
+ io_sample_rate_ratio_, request_size, base::Bind(
&AudioConverter::ProvideInput, base::Unretained(this))));
}
@@ -115,6 +115,13 @@ int AudioConverter::ChunkSize() const {
return resampler_->ChunkSize();
}
+int AudioConverter::RequestSize() const {
+ if (resampler_)
+ return audio_fifo_ ? chunk_size_
+ : SincResampler::kDefaultRequestSize;
+ return chunk_size_;
+}
+
void AudioConverter::ConvertWithDelay(const base::TimeDelta& initial_delay,
AudioBus* dest) {
initial_delay_ = initial_delay;

Powered by Google App Engine
This is Rietveld 408576698