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

Side by Side Diff: media/base/audio_renderer_mixer_input.cc

Issue 11410012: Collapse AudioRendererMixer and OnMoreDataResampler into AudioTransform. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: First draft. Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/audio_renderer_mixer_input.h" 5 #include "media/base/audio_renderer_mixer_input.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "media/base/audio_renderer_mixer.h" 8 #include "media/base/audio_renderer_mixer.h"
9 9
10 namespace media { 10 namespace media {
11 11
12 AudioRendererMixerInput::AudioRendererMixerInput( 12 AudioRendererMixerInput::AudioRendererMixerInput(
13 const GetMixerCB& get_mixer_cb, const RemoveMixerCB& remove_mixer_cb) 13 const GetMixerCB& get_mixer_cb, const RemoveMixerCB& remove_mixer_cb)
14 : playing_(false), 14 : playing_(false),
15 initialized_(false), 15 initialized_(false),
16 started_(false), 16 started_(false),
17 volume_(1.0f), 17 volume_(1.0f),
18 get_mixer_cb_(get_mixer_cb), 18 get_mixer_cb_(get_mixer_cb),
19 remove_mixer_cb_(remove_mixer_cb), 19 remove_mixer_cb_(remove_mixer_cb),
20 mixer_(NULL), 20 mixer_(NULL),
21 callback_(NULL) { 21 callback_(NULL),
22 current_audio_delay_milliseconds_(0) {
miu 2012/11/12 20:51:59 This new member is never updated anywhere. Do you
DaleCurtis 2012/11/12 21:23:53 Set in header file via hacker_style() setter.
22 } 23 }
23 24
24 AudioRendererMixerInput::~AudioRendererMixerInput() { 25 AudioRendererMixerInput::~AudioRendererMixerInput() {
25 // Mixer is no longer safe to use after |remove_mixer_cb_| has been called. 26 // Mixer is no longer safe to use after |remove_mixer_cb_| has been called.
26 if (initialized_) 27 if (initialized_)
27 remove_mixer_cb_.Run(params_); 28 remove_mixer_cb_.Run(params_);
28 } 29 }
29 30
30 void AudioRendererMixerInput::Initialize( 31 void AudioRendererMixerInput::Initialize(
31 const AudioParameters& params, 32 const AudioParameters& params,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 // We don't care about flush since Pause() simply indicates we should send 66 // We don't care about flush since Pause() simply indicates we should send
66 // silence to AudioRendererMixer. 67 // silence to AudioRendererMixer.
67 playing_ = false; 68 playing_ = false;
68 } 69 }
69 70
70 bool AudioRendererMixerInput::SetVolume(double volume) { 71 bool AudioRendererMixerInput::SetVolume(double volume) {
71 volume_ = volume; 72 volume_ = volume;
72 return true; 73 return true;
73 } 74 }
74 75
75 void AudioRendererMixerInput::GetVolume(double* volume) { 76 float AudioRendererMixerInput::ProvideAudioTransformInput(
76 *volume = volume_; 77 AudioBus* audio_bus, base::TimeDelta buffer_delay) {
78 int frames_filled = 0;
79
80 if (playing_) {
81 frames_filled = callback_->Render(
82 audio_bus,
83 current_audio_delay_milliseconds_ + buffer_delay.InMilliseconds());
scherkus (not reviewing) 2012/11/14 22:43:50 this mixing 'n matching between TimeDelta and inte
DaleCurtis 2012/11/16 23:51:05 Yeah, the end goal is everyone using TimeDelta eve
84
85 // AudioTransform expects unfilled frames to be zeroed.
86 if (frames_filled < audio_bus->frames()) {
87 audio_bus->ZeroFramesPartial(
88 frames_filled, audio_bus->frames() - frames_filled);
89 }
90 }
91
92 return frames_filled > 0 ? volume_ : 0;
93 }
94
95 void AudioRendererMixerInput::OnRenderError() {
96 callback_->OnRenderError();
77 } 97 }
78 98
79 } // namespace media 99 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698