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

Issue 10575017: Adding experimental exclusive-mode streaming to WASAPIAudioOutputStream (Closed)

Created:
8 years, 6 months ago by henrika (OOO until Aug 14)
Modified:
8 years, 4 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, scherkus (not reviewing), xians, Raymond Toy (Google), tommi (sloooow) - chröme
Visibility:
Public.

Description

This CL adds support for experimental exclusive-mode streaming to WASAPIAudioOutputStream. Enabling the flag "enable-exclusive-mode" will ensure that output audio streaming on Windows runs in exclusive mode (if the user has allowed it). Initial tests shows that we can reach latencies of about 3.33ms for 48kHz. As a comparison, for shared-mode, the total latency is ~35ms (even if the time between each OnMoreData() callback is ~10ms). BUG=133483 TEST=media_unittests --enable-exclusive-audio --gtest_filter=WinAudioOutputTest* Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=148731

Patch Set 1 #

Patch Set 2 : Adding WebAudio experimental parameters #

Total comments: 4

Patch Set 3 : Changes based on review comments by Chris #

Total comments: 14

Patch Set 4 : Changes based on review by Chris and Andrew #

Total comments: 14

Patch Set 5 : Changes based on review from Andrew #

Total comments: 42

Patch Set 6 : More modifications after review by Tommi and Shijing #

Patch Set 7 : nit #

Total comments: 16

Patch Set 8 : Modifications proposed by Andrew #

Total comments: 56

Patch Set 9 : More changes based on feedback from Tommi #

Patch Set 10 : Improved test stability #

Total comments: 4

Patch Set 11 : Minor changes proposed by Andrew #

Unified diffs Side-by-side diffs Delta from patch set Stats (+555 lines, -131 lines) Patch
M media/audio/audio_util.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +33 lines, -12 lines 0 comments Download
M media/audio/win/audio_low_latency_output_win.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +42 lines, -2 lines 0 comments Download
M media/audio/win/audio_low_latency_output_win.cc View 1 2 3 4 5 6 7 8 9 10 14 chunks +237 lines, -89 lines 0 comments Download
M media/audio/win/audio_low_latency_output_win_unittest.cc View 1 2 3 4 5 6 7 8 9 12 chunks +230 lines, -28 lines 0 comments Download
M media/base/media_switches.h View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M media/base/media_switches.cc View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download

Messages

Total messages: 23 (0 generated)
henrika (OOO until Aug 14)
Chris, using this patch will allow you to run experiments with WebAuido using much lower ...
8 years, 6 months ago (2012-06-19 12:26:24 UTC) #1
henrika (OOO until Aug 14)
Added experimental new parameters for WebAudio. I use 44.1kHz and 256 samples per buffer (~5.805ms). ...
8 years, 6 months ago (2012-06-19 12:55:17 UTC) #2
Chris Rogers
Thanks Henrik, this looks awesome! We'll check it out...
8 years, 6 months ago (2012-06-20 00:02:29 UTC) #3
Chris Rogers
https://chromiumcodereview.appspot.com/10575017/diff/3001/media/audio/win/audio_low_latency_output_win.cc File media/audio/win/audio_low_latency_output_win.cc (right): https://chromiumcodereview.appspot.com/10575017/diff/3001/media/audio/win/audio_low_latency_output_win.cc#newcode46 media/audio/win/audio_low_latency_output_win.cc:46: DVLOG(1) << ">> Note that EXCLUSIVE MODE is enabled ...
8 years, 6 months ago (2012-06-20 00:02:42 UTC) #4
henrika (OOO until Aug 14)
Chris, I will make changes according to your comments as soon as our working environment ...
8 years, 6 months ago (2012-06-20 12:01:39 UTC) #5
henrika (OOO until Aug 14)
http://codereview.chromium.org/10575017/diff/3001/media/audio/win/audio_low_latency_output_win.cc File media/audio/win/audio_low_latency_output_win.cc (right): http://codereview.chromium.org/10575017/diff/3001/media/audio/win/audio_low_latency_output_win.cc#newcode46 media/audio/win/audio_low_latency_output_win.cc:46: DVLOG(1) << ">> Note that EXCLUSIVE MODE is enabled ...
8 years, 6 months ago (2012-06-21 06:39:23 UTC) #6
henrika (OOO until Aug 14)
Replaced Eugene with Andrew as reviewer (and owner in media).
8 years, 6 months ago (2012-06-25 15:58:07 UTC) #7
scherkus (not reviewing)
https://chromiumcodereview.appspot.com/10575017/diff/9001/media/audio/audio_util.cc File media/audio/audio_util.cc (right): https://chromiumcodereview.appspot.com/10575017/diff/9001/media/audio/audio_util.cc#newcode20 media/audio/audio_util.cc:20: #if defined(OS_WIN) this kind of splitting up + alpha ...
8 years, 5 months ago (2012-06-27 04:20:29 UTC) #8
henrika (OOO until Aug 14)
Thanks for all your comments. New version is coming up. http://codereview.chromium.org/10575017/diff/9001/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/9001/media/audio/audio_util.cc#newcode20 ...
8 years, 5 months ago (2012-06-27 11:26:07 UTC) #9
scherkus (not reviewing)
http://codereview.chromium.org/10575017/diff/18001/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/18001/media/audio/audio_util.cc#newcode355 media/audio/audio_util.cc:355: if (!cmd_line->HasSwitch(switches::kEnableExclusiveMode)) { doh rietveld swallowed my comment from ...
8 years, 5 months ago (2012-06-28 00:04:40 UTC) #10
henrika (OOO until Aug 14)
Replied to all comments from Andrew. http://codereview.chromium.org/10575017/diff/18001/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/18001/media/audio/audio_util.cc#newcode355 media/audio/audio_util.cc:355: if (!cmd_line->HasSwitch(switches::kEnableExclusiveMode)) { ...
8 years, 5 months ago (2012-07-25 11:18:22 UTC) #11
tommi (sloooow) - chröme
drive-by. looks good in general. http://codereview.chromium.org/10575017/diff/24002/media/audio/win/audio_low_latency_output_win.cc File media/audio/win/audio_low_latency_output_win.cc (right): http://codereview.chromium.org/10575017/diff/24002/media/audio/win/audio_low_latency_output_win.cc#newcode27 media/audio/win/audio_low_latency_output_win.cc:27: else nit: can remove ...
8 years, 5 months ago (2012-07-25 11:49:40 UTC) #12
no longer working on chromium
Looking forward to trying it out. Driven by the interest on exclusive mode. Some comments ...
8 years, 5 months ago (2012-07-25 12:32:57 UTC) #13
henrika (OOO until Aug 14)
All done...I hope. http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc#newcode36 media/audio/audio_util.cc:36: #include "media/audio/audio_manager_base.h" On 2012/07/25 12:32:57, xians1 ...
8 years, 5 months ago (2012-07-25 15:26:30 UTC) #14
scherkus (not reviewing)
mostly nits -- didn't take a close look at the exclusive code itself as I'm ...
8 years, 5 months ago (2012-07-25 23:44:44 UTC) #15
henrika (OOO until Aug 14)
Hope we are done now ;-) http://codereview.chromium.org/10575017/diff/31002/media/audio/win/audio_low_latency_output_win.cc File media/audio/win/audio_low_latency_output_win.cc (right): http://codereview.chromium.org/10575017/diff/31002/media/audio/win/audio_low_latency_output_win.cc#newcode32 media/audio/win/audio_low_latency_output_win.cc:32: static const AUDCLNT_SHAREMODE ...
8 years, 5 months ago (2012-07-26 08:31:11 UTC) #16
no longer working on chromium
Remove myself from the reviewers.
8 years, 5 months ago (2012-07-26 08:37:32 UTC) #17
tommi (sloooow) - chröme
took a slightly closer look this time. http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc#newcode357 media/audio/audio_util.cc:357: const CommandLine* ...
8 years, 5 months ago (2012-07-26 09:13:04 UTC) #18
henrika (OOO until Aug 14)
Thanks Tommi! http://codereview.chromium.org/10575017/diff/31003/media/audio/win/audio_low_latency_output_win.cc File media/audio/win/audio_low_latency_output_win.cc (right): http://codereview.chromium.org/10575017/diff/31003/media/audio/win/audio_low_latency_output_win.cc#newcode452 media/audio/win/audio_low_latency_output_win.cc:452: // directly on the buffer size. Thx ...
8 years, 5 months ago (2012-07-26 13:23:00 UTC) #19
tommi (sloooow) - chröme
Looks good. I'll wait for the last unit test updates. http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/24002/media/audio/audio_util.cc#newcode357 ...
8 years, 5 months ago (2012-07-26 13:41:49 UTC) #20
tommi (sloooow) - chröme
lgtm
8 years, 5 months ago (2012-07-26 14:07:32 UTC) #21
scherkus (not reviewing)
lgtm w/ nits http://codereview.chromium.org/10575017/diff/30005/media/audio/audio_util.cc File media/audio/audio_util.cc (right): http://codereview.chromium.org/10575017/diff/30005/media/audio/audio_util.cc#newcode34 media/audio/audio_util.cc:34: #include "media/audio/win/audio_low_latency_output_win.h" a->z ordering http://codereview.chromium.org/10575017/diff/30005/media/audio/win/audio_low_latency_output_win.cc File ...
8 years, 5 months ago (2012-07-26 17:06:40 UTC) #22
henrika (OOO until Aug 14)
8 years, 4 months ago (2012-07-27 08:27:39 UTC) #23
Thanks.

http://codereview.chromium.org/10575017/diff/30005/media/audio/audio_util.cc
File media/audio/audio_util.cc (right):

http://codereview.chromium.org/10575017/diff/30005/media/audio/audio_util.cc#...
media/audio/audio_util.cc:34: #include
"media/audio/win/audio_low_latency_output_win.h"
On 2012/07/26 17:06:41, scherkus wrote:
> a->z ordering

Done.

http://codereview.chromium.org/10575017/diff/30005/media/audio/win/audio_low_...
File media/audio/win/audio_low_latency_output_win.cc (right):

http://codereview.chromium.org/10575017/diff/30005/media/audio/win/audio_low_...
media/audio/win/audio_low_latency_output_win.cc:33: static const
AUDCLNT_SHAREMODE kShareMode = GetShareModeImpl();
On 2012/07/26 17:06:41, scherkus wrote:
> don't bother w/ the static and simply inline the Impl version -- if someone
else
> came across this they would be confused

Done.

Powered by Google App Engine
This is Rietveld 408576698