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

Issue 61203008: Attempt to fix audio wedges by restarting all streams. (Closed)

Created:
7 years, 1 month ago by DaleCurtis
Modified:
7 years ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, miu+watch_chromium.org
Visibility:
Public.

Description

Attempt to fix audio wedges by restarting all streams on OSX. Introduces two new methods to AudioOutputDispatcher: CloseStreamsForWedgeFix() and RestartStreamsForWedgeFix(). Respectively, each method closes or restarts all active streams owned by a given dispatcher. The process is completely transparent to upstream clients. A new method on AudioManager, FixWedgedAudio() calls CloseStreamsForWedgeFix() for all dispatchers and then calls RestartStreamsForWedgeFix() afterward. FixWedgedAudio() is called by each AudioOutputController when a wedge is detected. Multiple in flight wedge checks are serialized by the audio thread. The hope is that wedges will be fixed before the next WedgeCheck() fires. While the methods are available on all platforms, FixWedgedAudio() is only wired up on OSX. BUG=160920 TEST=unittest. fake wedge and observe stream recreation. R=scherkus@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=238325 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=238501

Patch Set 1 #

Total comments: 14

Patch Set 2 : Comments. #

Total comments: 2

Patch Set 3 : Remove Times(1). #

Patch Set 4 : Fix mock. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+163 lines, -2 lines) Patch
M media/audio/audio_manager.h View 1 chunk +5 lines, -0 lines 0 comments Download
M media/audio/audio_manager_base.h View 1 chunk +2 lines, -0 lines 0 comments Download
M media/audio/audio_manager_base.cc View 1 1 chunk +28 lines, -0 lines 0 comments Download
M media/audio/audio_output_controller.cc View 1 1 chunk +9 lines, -2 lines 0 comments Download
M media/audio/audio_output_dispatcher.h View 1 1 chunk +7 lines, -0 lines 0 comments Download
M media/audio/audio_output_dispatcher_impl.h View 1 chunk +3 lines, -0 lines 0 comments Download
M media/audio/audio_output_dispatcher_impl.cc View 1 2 chunks +19 lines, -0 lines 0 comments Download
M media/audio/audio_output_proxy_unittest.cc View 1 2 1 chunk +60 lines, -0 lines 0 comments Download
M media/audio/audio_output_resampler.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M media/audio/audio_output_resampler.cc View 1 1 chunk +24 lines, -0 lines 0 comments Download
M media/audio/mock_audio_manager.h View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M media/audio/mock_audio_manager.cc View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
DaleCurtis
WDYT? My worries: - Short fuse on WedgeCheck() may increase false positives. - FixWedgeCheck() may ...
7 years, 1 month ago (2013-11-13 01:39:46 UTC) #1
scherkus (not reviewing)
On 2013/11/13 01:39:46, DaleCurtis wrote: > WDYT? My worries: > - Short fuse on WedgeCheck() ...
7 years, 1 month ago (2013-11-13 18:40:56 UTC) #2
DaleCurtis
I mostly agree a more precise root cause would be nice. However we've been hammering ...
7 years, 1 month ago (2013-11-13 19:42:53 UTC) #3
scherkus (not reviewing)
On 2013/11/13 19:42:53, DaleCurtis wrote: > I mostly agree a more precise root cause would ...
7 years, 1 month ago (2013-11-13 19:52:53 UTC) #4
DaleCurtis
Please review. We're now to the point where this should be considered.
7 years, 1 month ago (2013-11-19 20:58:15 UTC) #5
DaleCurtis
PTAL. No word from Apple, so we need to land a workaround.
7 years ago (2013-12-02 19:13:29 UTC) #6
scherkus (not reviewing)
https://codereview.chromium.org/61203008/diff/1/media/audio/audio_manager_base.cc File media/audio/audio_manager_base.cc (right): https://codereview.chromium.org/61203008/diff/1/media/audio/audio_manager_base.cc#newcode424 media/audio/audio_manager_base.cc:424: // Close all active streams across all dispatchers. these ...
7 years ago (2013-12-02 21:49:36 UTC) #7
DaleCurtis
(just comments) https://codereview.chromium.org/61203008/diff/1/media/audio/audio_output_controller.cc File media/audio/audio_output_controller.cc (right): https://codereview.chromium.org/61203008/diff/1/media/audio/audio_output_controller.cc#newcode218 media/audio/audio_output_controller.cc:218: FROM_HERE, TimeDelta::FromSeconds(1), this, On 2013/12/02 21:49:37, scherkus ...
7 years ago (2013-12-02 22:23:59 UTC) #8
DaleCurtis
PTAL. https://codereview.chromium.org/61203008/diff/1/media/audio/audio_manager_base.cc File media/audio/audio_manager_base.cc (right): https://codereview.chromium.org/61203008/diff/1/media/audio/audio_manager_base.cc#newcode424 media/audio/audio_manager_base.cc:424: // Close all active streams across all dispatchers. ...
7 years ago (2013-12-02 22:52:07 UTC) #9
scherkus (not reviewing)
don't forget to update CL description to say somewhere that this is a Mac-specific fix ...
7 years ago (2013-12-03 01:13:49 UTC) #10
DaleCurtis
Description updated. Thanks for review! https://codereview.chromium.org/61203008/diff/150001/media/audio/audio_output_proxy_unittest.cc File media/audio/audio_output_proxy_unittest.cc (right): https://codereview.chromium.org/61203008/diff/150001/media/audio/audio_output_proxy_unittest.cc#newcode767 media/audio/audio_output_proxy_unittest.cc:767: .Times(1); On 2013/12/03 01:13:49, ...
7 years ago (2013-12-03 01:26:23 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dalecurtis@chromium.org/61203008/170001
7 years ago (2013-12-03 01:27:14 UTC) #12
commit-bot: I haz the power
Retried try job too often on linux_rel for step(s) base_unittests, browser_tests, interactive_ui_tests, net_unittests, unit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_rel&number=197520
7 years ago (2013-12-03 01:48:30 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dalecurtis@chromium.org/61203008/170002
7 years ago (2013-12-03 03:14:26 UTC) #14
DaleCurtis
Committed patchset #4 manually as r238325 (presubmit successful).
7 years ago (2013-12-03 08:09:39 UTC) #15
DaleCurtis
7 years ago (2013-12-04 00:45:55 UTC) #16
Message was sent while issue was closed.
Committed patchset #4 manually as r238501 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698