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..b23c27fc94b7feb1b5cec609511847ad2ea4383b 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 owner_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 owner_id_; |
+ 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. |