Index: media/base/audio_renderer_sink.h |
=================================================================== |
--- media/base/audio_renderer_sink.h (revision 156123) |
+++ media/base/audio_renderer_sink.h (working copy) |
@@ -23,10 +23,15 @@ |
public: |
class RenderCallback { |
public: |
- // Attempts to completely fill all channels of |audio_bus|, returns actual |
+ // Attempts to completely fill all channels of |dest|, returns actual |
// number of frames filled. |
- virtual int Render(AudioBus* audio_bus, int audio_delay_milliseconds) = 0; |
+ virtual int Render(AudioBus* dest, int audio_delay_milliseconds) = 0; |
+ // Synchronized audio I/O - see InitializeIO() below. |
+ virtual void RenderIO(AudioBus* source, |
+ AudioBus* dest, |
+ int audio_delay_milliseconds) {} |
+ |
// Signals an error has occurred. |
virtual void OnRenderError() = 0; |
@@ -39,6 +44,17 @@ |
virtual void Initialize(const AudioParameters& params, |
RenderCallback* callback) = 0; |
+ // InitializeIO() may be called instead of Initialize() for clients who wish |
+ // to have synchronized input and output. |input_channels| specifies the |
+ // number of input channels which will be at the same sample-rate |
+ // and buffer-size as the output as specified in |params|. |
+ // The callback's RenderIO() method will be called instead of Render(), |
+ // providing the synchronized input data at the same time as when new |
+ // output data is to be rendered. |
+ virtual void InitializeIO(const AudioParameters& params, |
+ int input_channels, |
+ RenderCallback* callback) {} |
+ |
// Starts audio playback. |
virtual void Start() = 0; |