DescriptionAttempt 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. #
Messages
Total messages: 16 (0 generated)
|