Chromium Code Reviews| Index: media/base/audio_renderer_mixer_input.h |
| diff --git a/media/base/audio_renderer_mixer_input.h b/media/base/audio_renderer_mixer_input.h |
| index a75320e78c681c73303c8d65bca0f9fb8a7cfd30..4cac30eef34180cee520d41884a7a0218372b1bf 100644 |
| --- a/media/base/audio_renderer_mixer_input.h |
| +++ b/media/base/audio_renderer_mixer_input.h |
| @@ -27,24 +27,15 @@ |
| namespace media { |
| +class AudioRendererMixerPool; |
| class AudioRendererMixer; |
| class MEDIA_EXPORT AudioRendererMixerInput |
| : NON_EXPORTED_BASE(public SwitchableAudioRendererSink), |
| public AudioConverter::InputCallback { |
| public: |
| - typedef base::Callback<AudioRendererMixer*(const AudioParameters& params, |
| - const std::string& device_id, |
| - const url::Origin& security_origin, |
| - OutputDeviceStatus* device_status)> |
| - GetMixerCB; |
| - typedef base::Callback<void(const AudioParameters& params, |
| - const std::string& device_id, |
| - const url::Origin& security_origin)> |
| - RemoveMixerCB; |
| - |
| - AudioRendererMixerInput(const GetMixerCB& get_mixer_cb, |
| - const RemoveMixerCB& remove_mixer_cb, |
| + AudioRendererMixerInput(AudioRendererMixerPool* mixer_pool, |
| + int source_render_frame_id, |
| const std::string& device_id, |
| const url::Origin& security_origin); |
| @@ -70,6 +61,9 @@ class MEDIA_EXPORT AudioRendererMixerInput |
| private: |
| friend class AudioRendererMixerInputTest; |
| + // Pool to obtain mixers from / return them to. |
| + AudioRendererMixerPool* const mixer_pool_; |
| + |
| // Protect |volume_|, accessed by separate threads in ProvideInput() and |
| // SetVolume(). |
| base::Lock volume_lock_; |
| @@ -82,20 +76,15 @@ class MEDIA_EXPORT AudioRendererMixerInput |
| double ProvideInput(AudioBus* audio_bus, |
| base::TimeDelta buffer_delay) override; |
| - // Callbacks provided during construction which allow AudioRendererMixerInput |
| - // to retrieve a mixer during Initialize() and notify when it's done with it. |
| - const GetMixerCB get_mixer_cb_; |
| - const RemoveMixerCB remove_mixer_cb_; |
| - |
| // AudioParameters received during Initialize(). |
| AudioParameters params_; |
| - // ID of hardware device to use |
| - std::string device_id_; |
| + const int source_render_frame_id_; |
|
miu
2016/05/19 22:27:16
Dale may have already mentioned this, but "render
o1ka
2016/05/20 10:40:32
...Well, "render frame ID" hadn't been known to mi
o1ka
2016/05/23 16:16:55
Renamed.
miu
2016/05/25 01:23:20
It's not that it is introducing a dependency. It i
|
| + std::string device_id_; // ID of hardware device to use |
| url::Origin security_origin_; |
| - // AudioRendererMixer provided through |get_mixer_cb_| during Initialize(), |
| - // guaranteed to live (at least) until |remove_mixer_cb_| is called. |
| + // AudioRendererMixer obtained from mixer pool during Initialize(), |
| + // guaranteed to live (at least) until it is returned to the pool. |
| AudioRendererMixer* mixer_; |
| // Source of audio data which is provided to the mixer. |