Index: media/audio/audio_device_thread.h |
diff --git a/media/audio/audio_device_thread.h b/media/audio/audio_device_thread.h |
index 1f63c21d9f96329e71b4d79d92622934464b16ee..220b801faef5d7f3de594ac594ec92d63c67fbee 100644 |
--- a/media/audio/audio_device_thread.h |
+++ b/media/audio/audio_device_thread.h |
@@ -50,8 +50,11 @@ class MEDIA_EXPORT AudioDeviceThread { |
// before Process can be called. |
virtual void MapSharedMemory() = 0; |
- // Called whenever we receive notifications about pending data. |
- virtual void Process(uint32 pending_data) = 0; |
+ // Called whenever we receive notifications about pending input data. |
+ // |frames_skipped| contains the number of frames that has been skipped. The |
+ // source can handle this appropriately depending on its type. An ordinary |
+ // file playout would ignore this. |
+ virtual void Process(uint32_t pending_data, uint32_t frames_skipped) = 0; |
protected: |
// Protected so that derived classes can access directly. |
@@ -75,11 +78,17 @@ class MEDIA_EXPORT AudioDeviceThread { |
// Starts the audio thread. The thread must not already be running. If |
// |sychronized_buffers| is set, the browser expects to be notified via the |
- // |socket| every time AudioDeviceThread::Process() completes. |
+ // |socket| every time AudioDeviceThread::Process() completes. |input| should |
+ // be true for input and false for output. It is used for reading the right |
+ // amount of data from the socket. |
+ // TODO(grunell): |input| is ugly, but there are plans to re-use a thread for |
+ // multiple inputs/outputs (see todo comment above) so we do it this way |
+ // meanwhile instead of using separate classes. |
void Start(AudioDeviceThread::Callback* callback, |
base::SyncSocket::Handle socket, |
const char* thread_name, |
- bool synchronized_buffers); |
+ bool synchronized_buffers, |
+ bool input); |
// This tells the audio thread to stop and clean up the data. |
// The method can stop the thread synchronously or asynchronously. |