| Index: content/browser/media/capture/web_contents_audio_input_stream.cc
|
| diff --git a/content/browser/media/capture/web_contents_audio_input_stream.cc b/content/browser/media/capture/web_contents_audio_input_stream.cc
|
| index ce8f7f46419f158a31a0540eb0b9583e997d0848..ffbd2243b15aa74f67b13e6b15aa4456985f457f 100644
|
| --- a/content/browser/media/capture/web_contents_audio_input_stream.cc
|
| +++ b/content/browser/media/capture/web_contents_audio_input_stream.cc
|
| @@ -86,9 +86,14 @@ class WebContentsAudioInputStream::Impl
|
| const MatchesCallback& results_callback);
|
| media::AudioOutputStream* AddInput(
|
| const media::AudioParameters& params) override;
|
| + media::AudioPushSink* AddPushInput(
|
| + const media::AudioParameters& params) override;
|
|
|
| // Callback which is run when |stream| is closed. Deletes |stream|.
|
| void ReleaseInput(media::VirtualAudioOutputStream* stream);
|
| + void ReleasePushInput(media::VirtualAudioSink* sink);
|
| +
|
| + bool IsDuplication() override;
|
|
|
| // Called by WebContentsTracker when the target of the audio mirroring has
|
| // changed.
|
| @@ -302,6 +307,25 @@ void WebContentsAudioInputStream::Impl::ReleaseInput(
|
| delete stream;
|
| }
|
|
|
| +media::AudioPushSink* WebContentsAudioInputStream::Impl::AddPushInput(
|
| + const media::AudioParameters& params) {
|
| + // Note: The closure created here holds a reference to "this," which will
|
| + // guarantee the VirtualAudioInputStream (mixer_stream_) outlives the
|
| + // VirtualAudioSink.
|
| + return new media::VirtualAudioSink(params, mixer_stream_.get(),
|
| + base::Bind(&Impl::ReleasePushInput, this));
|
| +}
|
| +
|
| +void WebContentsAudioInputStream::Impl::ReleasePushInput(
|
| + media::VirtualAudioSink* stream) {
|
| + delete stream;
|
| +}
|
| +
|
| +bool WebContentsAudioInputStream::Impl::IsDuplication() {
|
| + // TODO(qiangchen): Return true for the case of Tab Typed Desktop Share.
|
| + return false;
|
| +}
|
| +
|
| void WebContentsAudioInputStream::Impl::OnTargetChanged(bool had_target) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
|
|