Chromium Code Reviews| Index: content/renderer/media/webaudio_capturer_source.h |
| diff --git a/content/renderer/media/webaudio_capturer_source.h b/content/renderer/media/webaudio_capturer_source.h |
| index b0ee262ccd7c3c06135b9252b3b394db8c0dc7dd..5ebb66232d55bf76581b71ed74e11b4103a01a84 100644 |
| --- a/content/renderer/media/webaudio_capturer_source.h |
| +++ b/content/renderer/media/webaudio_capturer_source.h |
| @@ -11,9 +11,11 @@ |
| #include "base/memory/ref_counted.h" |
| #include "base/synchronization/lock.h" |
| #include "base/threading/thread_checker.h" |
| +#include "base/time/time.h" |
| #include "media/audio/audio_parameters.h" |
| +#include "media/base/audio_bus.h" |
| #include "media/base/audio_capturer_source.h" |
| -#include "media/base/audio_fifo.h" |
| +#include "media/base/audio_push_fifo.h" |
| #include "third_party/WebKit/public/platform/WebAudioDestinationConsumer.h" |
| #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
| #include "third_party/WebKit/public/platform/WebVector.h" |
| @@ -58,6 +60,12 @@ class WebAudioCapturerSource |
| ~WebAudioCapturerSource() override; |
| private: |
| + // Called by AudioPushFifo zero or more times during the call to |
| + // consumeAudio(). Delivers audio data with the required buffer size to the |
| + // track. |
| + void DeliverRebufferedAudio(const media::AudioBus& audio_bus, |
| + int frame_delay); |
| + |
| // Removes this object from a blink::WebMediaStreamSource with which it |
| // might be registered. The goal is to avoid dangling pointers. |
| void removeFromBlinkSource(); |
| @@ -75,14 +83,18 @@ class WebAudioCapturerSource |
| // Flag to help notify the |track_| when the audio format has changed. |
| bool audio_format_changed_; |
| - // Wraps data coming from HandleCapture(). |
| + // A wrapper used for providing audio to |fifo_|. |
| scoped_ptr<media::AudioBus> wrapper_bus_; |
| - // Bus for reading from FIFO and calling the CaptureCallback. |
| - scoped_ptr<media::AudioBus> capture_bus_; |
| + // Takes in the audio data passed to consumeAudio() and re-buffers it into 10 |
| + // ms chunks for the track. This ensures each chunk of audio delivered to the |
| + // track has the required buffer size, regardless of the amount of audio |
| + // provided via each consumeAudio() call. |
| + media::AudioPushFifo fifo_; |
| - // Handles mismatch between WebAudio buffer size and WebRTC. |
| - scoped_ptr<media::AudioFifo> fifo_; |
| + // Used to pass the reference timestamp between DeliverDecodedAudio() and |
| + // DeviliverRebufferedAudio(). |
|
Irfan
2016/02/24 19:04:30
DeliverRebufferedAudio
miu
2016/02/24 22:16:42
Done.
|
| + base::TimeTicks current_reference_time_; |
| // Synchronizes HandleCapture() with AudioCapturerSource calls. |
| base::Lock lock_; |