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..4a06ee9a8bd2a217d7cb5ca00c710a491f3353fb 100644 |
--- a/content/renderer/media/webaudio_capturer_source.h |
+++ b/content/renderer/media/webaudio_capturer_source.h |
@@ -12,8 +12,9 @@ |
#include "base/synchronization/lock.h" |
#include "base/threading/thread_checker.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_rechunker.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 +59,11 @@ class WebAudioCapturerSource |
~WebAudioCapturerSource() override; |
private: |
+ // Called by AudioRechunker zero or more times during the call to |
+ // consumeAudio(). Delivers re-chunked audio data to the track. |
+ void DeliverRechunkedAudio(const media::AudioBus& audio_bus, |
+ base::TimeDelta reference_timestamp); |
+ |
// Removes this object from a blink::WebMediaStreamSource with which it |
// might be registered. The goal is to avoid dangling pointers. |
void removeFromBlinkSource(); |
@@ -75,14 +81,14 @@ 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 |rechunker_|. |
scoped_ptr<media::AudioBus> wrapper_bus_; |
- // Bus for reading from FIFO and calling the CaptureCallback. |
- scoped_ptr<media::AudioBus> capture_bus_; |
- |
- // Handles mismatch between WebAudio buffer size and WebRTC. |
- scoped_ptr<media::AudioFifo> fifo_; |
+ // Takes in the audio data passed to consumeAudio() and re-chunks 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::AudioRechunker rechunker_; |
// Synchronizes HandleCapture() with AudioCapturerSource calls. |
base::Lock lock_; |