summaryrefslogtreecommitdiff
path: root/chromium/media/base/audio_renderer_mixer_pool.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/base/audio_renderer_mixer_pool.h')
-rw-r--r--chromium/media/base/audio_renderer_mixer_pool.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/chromium/media/base/audio_renderer_mixer_pool.h b/chromium/media/base/audio_renderer_mixer_pool.h
index 760f3eed032..461960d7ee4 100644
--- a/chromium/media/base/audio_renderer_mixer_pool.h
+++ b/chromium/media/base/audio_renderer_mixer_pool.h
@@ -13,31 +13,38 @@
namespace media {
class AudioParameters;
class AudioRendererMixer;
+class AudioRendererSink;
// Provides AudioRendererMixer instances for shared usage.
// Thread safe.
class MEDIA_EXPORT AudioRendererMixerPool {
public:
- AudioRendererMixerPool() {}
- virtual ~AudioRendererMixerPool() {}
+ AudioRendererMixerPool() = default;
+ virtual ~AudioRendererMixerPool() = default;
// Obtains a pointer to mixer instance based on AudioParameters. The pointer
// is guaranteed to be valid (at least) until it's rereleased by a call to
// ReturnMixer().
- virtual AudioRendererMixer* GetMixer(int owner_id,
- const AudioParameters& params,
- AudioLatency::LatencyType latency,
- const std::string& device_id,
- OutputDeviceStatus* device_status) = 0;
+ //
+ // Ownership of |sink| must be passed to GetMixer(), it will be stopped and
+ // discard if an existing mixer can be reused. Clients must have called
+ // GetOutputDeviceInfoAsync() on |sink| to get |sink_info|, and it must have
+ // a device_status() == OUTPUT_DEVICE_STATUS_OK.
+ virtual AudioRendererMixer* GetMixer(
+ int owner_id,
+ const AudioParameters& input_params,
+ AudioLatency::LatencyType latency,
+ const OutputDeviceInfo& sink_info,
+ scoped_refptr<AudioRendererSink> sink) = 0;
// Returns mixer back to the pool, must be called when the mixer is not needed
// any more to avoid memory leakage.
virtual void ReturnMixer(AudioRendererMixer* mixer) = 0;
- // Returns output device information
- virtual OutputDeviceInfo GetOutputDeviceInfo(
+ // Returns an AudioRendererSink for use with GetMixer(). Inputs must call this
+ // to get a sink to use with a subsequent GetMixer()
+ virtual scoped_refptr<AudioRendererSink> GetSink(
int owner_id,
- int session_id,
const std::string& device_id) = 0;
private: