Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: media/audio/audio_device_thread.h

Issue 1487983002: Forward the number of skipped frames by the OS in audio playout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e687822680395b885e85ccbc366b16e430030aeb 100644
--- a/media/audio/audio_device_thread.h
+++ b/media/audio/audio_device_thread.h
@@ -50,8 +50,13 @@ 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.
+ virtual void Process(uint32_t pending_data) = 0;
+
+ // Called before ProcessInput() if the consumer has skipped any frames. The
+ // source can handle this appropriately depending on its type. An ordinary
+ // file playout would ignore this. Only used for output.
+ virtual void FramesSkipped(uint32_t frames_skipped) = 0;
protected:
// Protected so that derived classes can access directly.
@@ -75,11 +80,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 is plans to re-use a thread for
tommi (sloooow) - chröme 2015/12/01 13:34:25 s/is plans/are plans
Henrik Grunell 2015/12/03 17:01:06 Done.
+ // multiple inputs/outputs (see todo comment above) so we do it this way
+ // meanwhile instead of using separating classes.
tommi (sloooow) - chröme 2015/12/01 13:34:25 using separate classes
Henrik Grunell 2015/12/03 17:01:06 Done.
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.

Powered by Google App Engine
This is Rietveld 408576698