Video playback fails if you unplug headphone while playing video
Reported by
tummalas...@gmail.com,
Jul 20 2017
|
||||||
Issue descriptionChrome Version : 59.0.3071.115 URLs (if applicable) : www.youtube.com OS version : Network (such as Cable/DSL/Dial up etc): Audio/Video format (if applicable): Special chrome flags (if applicable): Behavior in Safari (if known): Not known Behavior in Firefox (if known): Continues play back Video issue, Audio issue, both, neither? both <b>Flash or HTML5? <right-clicking most players will either reveal some text</b> with “Flash”; otherwise likely HTML5> : MSE If the browser or renderer crashed (“Aw, Snap”), please add any crash IDs from chrome://crashes (possibly after enabling crash reporting per http://support.google.com/chrome/bin/answer.py?hl=en&answer=96817) What steps will reproduce the problem? (1)On any audio player while playing a video unplug the head phone. If on you tube seek at least to half of the video (2)If you are testing this on youtube and unplug headphone in first few seconds it will restart playback (3) What is the expected result? Continue play back without and error or reload What is the actual result? Playback fails Any additional information (anything else which may help us debug the issue)? Please attach the HTML5/JavaScript code or audio/video files as well as screenshot and/or videos (if applicable)
,
Jul 20 2017
Windows 10 build 15063
,
Jul 26 2017
,
Jul 26 2017
Is this usb or jack based headphone? Didn't reproduce with jack based headphone for me.
,
Jul 27 2017
Am using a head phone Jack. To make sure it is still reproducible, I just tested it and it is still reproducible.
,
Jul 29 2017
,
Jul 31 2017
Thanks, will try on some other machines and loop in a few folk who might be able to test as well.
,
Aug 1 2017
Which sound card do you have? I've tried a few machines both at home and work with a variety of USB and jack based headphones and things are working as expected on YouTube and other sites. Can you grab the contents of the "Audio" tab in chrome://media-internals when the device is working and when it isn't?
,
Aug 2 2017
I have Cirrus Logic CS4208 (AB 94))
,
Aug 2 2017
Sorry I need to see the "audio" tab, not the "players" tab.
,
Aug 2 2017
,
Aug 2 2017
Thanks definitely we're sending an audio renderer error for some reason. If you're comfortable doing so, you can try installing https://github.com/google/sawbuck/releases and then triggering the failure (make sure to start log capture in sawbuck). This should provide us with more details on what might be going wrong.
,
Aug 3 2017
give to dale to follow up.
,
Aug 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/974674dd40bbb79bf9849f1ccdbfb98c9826b69b commit 974674dd40bbb79bf9849f1ccdbfb98c9826b69b Author: Dale Curtis <dalecurtis@chromium.org> Date: Fri Aug 11 00:06:55 2017 Defer AOC::OnError() to avoid spurious device change errors. There are a few devices out there that end up delivering an error through the AudioOutputStream::AudioSourceCallback interface _before_ a device change starts. These errors are transient and we expect playback on the new device to work correctly. To workaround this defer all errors for 1 second to ensure there are no upcoming device changes which will resolve the error. We expect device changes to take a few hundred milliseconds so the 1 second value is chosen arbitrarily to exceed that. We could also consider switching out streams with errors with fake streams, but in the event of transient failures this would prevent the client javascript from detecting the error and attempting a player restart. The defer approach allows this to still happen. This change expands the existing lock+bool we have for ignoring errors _during_ a stop & close to using a WeakPtr and delayed task to ignore errors during and immediately before the device change occurs. BUG= 751780 , 746749 TEST=new unittest. Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I54dad90389dd0fda3d056791dffd1d8127a0d96c Reviewed-on: https://chromium-review.googlesource.com/602596 Commit-Queue: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Max Morin <maxmorin@chromium.org> Cr-Commit-Position: refs/heads/master@{#493607} [modify] https://crrev.com/974674dd40bbb79bf9849f1ccdbfb98c9826b69b/content/browser/renderer_host/media/audio_output_delegate_impl_unittest.cc [modify] https://crrev.com/974674dd40bbb79bf9849f1ccdbfb98c9826b69b/media/audio/audio_output_controller.cc [modify] https://crrev.com/974674dd40bbb79bf9849f1ccdbfb98c9826b69b/media/audio/audio_output_controller.h [modify] https://crrev.com/974674dd40bbb79bf9849f1ccdbfb98c9826b69b/media/audio/audio_output_controller_unittest.cc
,
Aug 21 2017
@tummalasujith: Can you try Chrome Canary and see if the issue is resolved for you? Stats show a ~0.05% reduction in audio renderer errors after this change.
,
Aug 29 2017
Tentatively marking as fixed for m62 |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by dalecur...@chromium.org
, Jul 20 2017