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

Issue 11416350: Tab Audio Mirroring: WebContentsAudioInputStream is a new implementation which represents the lifet… (Closed)

Created:
8 years ago by miu
Modified:
7 years, 11 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, feature-media-reviews_chromium.org
Visibility:
Public.

Description

Tab Audio Mirroring: WebContentsAudioInputStream is a new implementation which represents and manages the lifetime of a tab audio mirroring session. WCAIS utilizes the audio mixing implementation provided by media::VirtualAudio*putStream. The result is a single audio input data stream consisting of all of one tab's audio output. Updated AudioInputRendererHost to use WCAIS for tab-level audio mirroring, rather than the browser-wide audio mirroring provided via AudioManager. Changed lifecycle semantics of media::VirtualAudio*putStream to allow the use of these classes outside of AudioManager's ownership. Cleaned up some suspicious multiple-message-loop variable passing, and a bunch of little things. BUG=153392 TEST=Run content_unittests and media_unittests. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=177605

Patch Set 1 : Initial #

Patch Set 2 : Refactored ref-counted part of WCAIS to internal object. #

Patch Set 3 : Fixed issues with losing mirroring on tab navigations. #

Total comments: 26

Patch Set 4 : Style tweaks and added comments per Tommi's suggestions. #

Patch Set 5 : Destructors hate ASSERT() in unit tests. #

Total comments: 14

Patch Set 6 : Replace RunAfterClosed() scheme with 'after close callback' passed to ctor. #

Total comments: 16

Patch Set 7 : Put WebContentsTracker in its own files. Clean-up 'do-nothing' callbacks. #

Total comments: 2

Patch Set 8 : Rebased. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1413 lines, -151 lines) Patch
M content/browser/renderer_host/media/audio_input_renderer_host.cc View 1 2 3 4 chunks +20 lines, -13 lines 0 comments Download
A content/browser/renderer_host/media/web_contents_audio_input_stream.h View 1 2 3 1 chunk +89 lines, -0 lines 0 comments Download
A content/browser/renderer_host/media/web_contents_audio_input_stream.cc View 1 2 3 4 5 6 1 chunk +348 lines, -0 lines 0 comments Download
A content/browser/renderer_host/media/web_contents_audio_input_stream_unittest.cc View 1 2 3 4 5 6 1 chunk +512 lines, -0 lines 0 comments Download
A content/browser/renderer_host/media/web_contents_tracker.h View 1 2 3 4 5 6 1 chunk +86 lines, -0 lines 0 comments Download
A content/browser/renderer_host/media/web_contents_tracker.cc View 1 2 3 4 5 6 1 chunk +102 lines, -0 lines 0 comments Download
M content/content_browser.gypi View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M content/content_tests.gypi View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M media/audio/audio_input_controller.h View 1 2 3 4 5 2 chunks +12 lines, -0 lines 0 comments Download
M media/audio/audio_input_controller.cc View 1 2 3 4 5 2 chunks +34 lines, -1 line 0 comments Download
M media/audio/audio_manager_base.h View 1 2 3 4 5 6 2 chunks +7 lines, -0 lines 0 comments Download
M media/audio/audio_manager_base.cc View 1 2 3 4 5 6 4 chunks +30 lines, -16 lines 0 comments Download
M media/audio/virtual_audio_input_stream.h View 1 2 3 4 5 6 7 4 chunks +19 lines, -15 lines 0 comments Download
M media/audio/virtual_audio_input_stream.cc View 1 2 3 4 5 6 7 8 chunks +24 lines, -17 lines 0 comments Download
M media/audio/virtual_audio_output_stream.h View 1 2 3 4 5 6 3 chunks +22 lines, -19 lines 0 comments Download
M media/audio/virtual_audio_output_stream.cc View 1 2 3 4 5 6 2 chunks +27 lines, -22 lines 0 comments Download
M media/audio/virtual_audio_output_stream_unittest.cc View 1 2 3 4 5 3 chunks +76 lines, -48 lines 0 comments Download

Messages

Total messages: 14 (0 generated)
miu
Hi all, This is the final piece to complete tab-level audio mirroring, based on the ...
7 years, 11 months ago (2013-01-12 01:40:51 UTC) #1
tommi (sloooow) - chröme
looks great overall. https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/audio_input_renderer_host.cc File content/browser/renderer_host/media/audio_input_renderer_host.cc (right): https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/audio_input_renderer_host.cc#newcode257 content/browser/renderer_host/media/audio_input_renderer_host.cc:257: // TODO(henrika): replace CreateLowLatency() with Create() ...
7 years, 11 months ago (2013-01-14 14:06:48 UTC) #2
miu
Thanks for taking a look, Tommi. Responses... https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/audio_input_renderer_host.cc File content/browser/renderer_host/media/audio_input_renderer_host.cc (right): https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/audio_input_renderer_host.cc#newcode257 content/browser/renderer_host/media/audio_input_renderer_host.cc:257: // TODO(henrika): ...
7 years, 11 months ago (2013-01-14 21:53:03 UTC) #3
tommi (sloooow) - chröme
lgtm https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/web_contents_audio_input_stream.cc File content/browser/renderer_host/media/web_contents_audio_input_stream.cc (right): https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/web_contents_audio_input_stream.cc#newcode131 content/browser/renderer_host/media/web_contents_audio_input_stream.cc:131: if (state_ != kConstructed) On 2013/01/14 21:53:03, Yuri ...
7 years, 11 months ago (2013-01-15 10:58:42 UTC) #4
DaleCurtis
https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h File content/browser/renderer_host/media/web_contents_capture_util.h (right): https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h#newcode46 content/browser/renderer_host/media/web_contents_capture_util.h:46: class CONTENT_EXPORT WebContentsTracker Why put this here vs separate ...
7 years, 11 months ago (2013-01-15 22:02:18 UTC) #5
miu
https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/web_contents_audio_input_stream.cc File content/browser/renderer_host/media/web_contents_audio_input_stream.cc (right): https://codereview.chromium.org/11416350/diff/19001/content/browser/renderer_host/media/web_contents_audio_input_stream.cc#newcode259 content/browser/renderer_host/media/web_contents_audio_input_stream.cc:259: return; // No change. On 2013/01/15 10:58:42, tommi wrote: ...
7 years, 11 months ago (2013-01-16 03:22:18 UTC) #6
DaleCurtis
https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h File content/browser/renderer_host/media/web_contents_capture_util.h (right): https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h#newcode46 content/browser/renderer_host/media/web_contents_capture_util.h:46: class CONTENT_EXPORT WebContentsTracker On 2013/01/16 03:22:18, Yuri wrote: > ...
7 years, 11 months ago (2013-01-17 01:15:51 UTC) #7
miu
https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h File content/browser/renderer_host/media/web_contents_capture_util.h (right): https://codereview.chromium.org/11416350/diff/32003/content/browser/renderer_host/media/web_contents_capture_util.h#newcode46 content/browser/renderer_host/media/web_contents_capture_util.h:46: class CONTENT_EXPORT WebContentsTracker On 2013/01/17 01:15:52, DaleCurtis wrote: > ...
7 years, 11 months ago (2013-01-17 05:33:55 UTC) #8
DaleCurtis
https://codereview.chromium.org/11416350/diff/42001/media/audio/audio_manager_base.cc File media/audio/audio_manager_base.cc (right): https://codereview.chromium.org/11416350/diff/42001/media/audio/audio_manager_base.cc#newcode126 media/audio/audio_manager_base.cc:126: struct Adapter { On 2013/01/17 05:33:55, Yuri wrote: > ...
7 years, 11 months ago (2013-01-17 21:11:11 UTC) #9
miu
https://codereview.chromium.org/11416350/diff/42001/media/audio/audio_manager_base.cc File media/audio/audio_manager_base.cc (right): https://codereview.chromium.org/11416350/diff/42001/media/audio/audio_manager_base.cc#newcode126 media/audio/audio_manager_base.cc:126: struct Adapter { On 2013/01/17 21:11:11, DaleCurtis wrote: > ...
7 years, 11 months ago (2013-01-17 22:44:11 UTC) #10
DaleCurtis
lgtm
7 years, 11 months ago (2013-01-17 23:00:04 UTC) #11
Charlie Reis
Rubber stamp owners LGTM for content/content_browser.gypi and content/content_tests.gypi.
7 years, 11 months ago (2013-01-18 00:29:26 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/miu@chromium.org/11416350/60002
7 years, 11 months ago (2013-01-18 03:06:12 UTC) #13
commit-bot: I haz the power
7 years, 11 months ago (2013-01-18 05:32:19 UTC) #14
Message was sent while issue was closed.
Change committed as 177605

Powered by Google App Engine
This is Rietveld 408576698