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

Unified Diff: media/filters/audio_renderer_algorithm.cc

Issue 2466463005: Support (E)AC3 passthrough
Patch Set: Improve CastMediaClient::IsSupportedPassthroughAudio() Created 4 years, 1 month 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/filters/audio_renderer_algorithm.cc
diff --git a/media/filters/audio_renderer_algorithm.cc b/media/filters/audio_renderer_algorithm.cc
index ebe334a0f1a0c76c1063ed1c79512cc36fd4c6bb..18f3bbdf9fdd89c78bf5855ac0367ecabd7eb7bb 100644
--- a/media/filters/audio_renderer_algorithm.cc
+++ b/media/filters/audio_renderer_algorithm.cc
@@ -67,6 +67,7 @@ static const int kStartingCapacityInMs = 200;
AudioRendererAlgorithm::AudioRendererAlgorithm()
: channels_(0),
samples_per_second_(0),
+ is_raw_format_(false),
muted_partial_frame_(0),
capacity_(0),
output_time_(0.0),
@@ -87,6 +88,7 @@ void AudioRendererAlgorithm::Initialize(const AudioParameters& params) {
channels_ = params.channels();
samples_per_second_ = params.sample_rate();
+ is_raw_format_ = params.IsRawFormat();
initial_capacity_ = capacity_ =
std::max(params.frames_per_buffer() * 2,
ConvertMillisecondsToFrames(kStartingCapacityInMs));
@@ -149,6 +151,14 @@ int AudioRendererAlgorithm::FillBuffer(AudioBus* dest,
DCHECK_GT(playback_rate, 0);
DCHECK_EQ(channels_, dest->channels());
+ dest->set_is_raw_format(is_raw_format_);
+ if (is_raw_format_) {
+ dest->set_data_size(0);
+ dest->set_frames(0);
+
+ return audio_buffer_.ReadFrames(requested_frames, dest_offset, dest);
+ }
+
// Optimize the muted case to issue a single clear instead of performing
// the full crossfade and clearing each crossfaded frame.
if (playback_rate < kMinPlaybackRate || playback_rate > kMaxPlaybackRate) {

Powered by Google App Engine
This is Rietveld 408576698