Index: content/renderer/media/audio_device.h |
=================================================================== |
--- content/renderer/media/audio_device.h (revision 113847) |
+++ content/renderer/media/audio_device.h (working copy) |
@@ -81,9 +81,13 @@ |
public: |
class CONTENT_EXPORT RenderCallback { |
public: |
- virtual void Render(const std::vector<float*>& audio_data, |
- size_t number_of_frames, |
- size_t audio_delay_milliseconds) = 0; |
+ // Fills entire buffer of length |number_of_frames| but returns actual |
+ // number of frames it got from its source (|number_of_frames| in case of |
+ // continuous stream). That actual number of frames is passed to host |
+ // together with PCM audio data and host is free to use or ignore it. |
+ virtual size_t Render(const std::vector<float*>& audio_data, |
+ size_t number_of_frames, |
+ size_t audio_delay_milliseconds) = 0; |
protected: |
virtual ~RenderCallback() {} |
}; |
@@ -159,10 +163,13 @@ |
void Send(IPC::Message* message); |
- // Method called on the audio thread (+ one call on the IO thread) ---------- |
- // Calls the client's callback for rendering audio. There will also be one |
- // initial call on the IO thread before the audio thread has been created. |
- void FireRenderCallback(int16* data); |
+ // Method called on the audio thread ---------------------------------------- |
+ // Calls the client's callback for rendering audio. |
+ // Returns actual number of filled frames that callback returned. This length |
+ // is passed to host at the end of the shared memory (i.e. buffer). In case of |
+ // continuous stream host just ignores it and assumes buffer is always filled |
+ // to its capacity. |
+ size_t FireRenderCallback(int16* data); |
// DelegateSimpleThread::Delegate implementation. |
virtual void Run() OVERRIDE; |