| Index: media/audio/audio_output_controller.h
|
| diff --git a/media/audio/audio_output_controller.h b/media/audio/audio_output_controller.h
|
| index 7820665440b4e0316e8d66a8fcfcdaade1d302db..95be9f4cae3fff2ba06a5493d0a927242798aa11 100644
|
| --- a/media/audio/audio_output_controller.h
|
| +++ b/media/audio/audio_output_controller.h
|
| @@ -8,6 +8,7 @@
|
| #include "base/atomic_ref_count.h"
|
| #include "base/callback.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/threading/thread_checker.h"
|
| #include "base/timer/timer.h"
|
| #include "build/build_config.h"
|
| #include "media/audio/audio_io.h"
|
| @@ -82,8 +83,12 @@ class MEDIA_EXPORT AudioOutputController
|
|
|
| // Notify the synchronous reader the number of bytes in the
|
| // AudioOutputController not yet played. This is used by SyncReader to
|
| - // prepare more data and perform synchronization.
|
| - virtual void UpdatePendingBytes(uint32 bytes) = 0;
|
| + // prepare more data and perform synchronization. Also inform about if any
|
| + // frames has been skipped by the renderer (typically the OS). The renderer
|
| + // source can handle this appropriately depending on the type of source. An
|
| + // ordinary file playout would ignore this.
|
| + virtual void UpdatePendingBytes(uint32_t bytes,
|
| + uint32_t frames_skipped) = 0;
|
|
|
| // Attempts to completely fill |dest|, zeroing |dest| if the request can not
|
| // be fulfilled (due to timeout).
|
| @@ -153,7 +158,9 @@ class MEDIA_EXPORT AudioOutputController
|
| const base::Closure& callback);
|
|
|
| // AudioSourceCallback implementation.
|
| - int OnMoreData(AudioBus* dest, uint32 total_bytes_delay) override;
|
| + int OnMoreData(AudioBus* dest,
|
| + uint32_t total_bytes_delay,
|
| + uint32_t frames_skipped) override;
|
| void OnError(AudioOutputStream* stream) override;
|
|
|
| // AudioDeviceListener implementation. When called AudioOutputController will
|
|
|