MSE decoding occasionally fails to initialize on Android
Reported by
dustin.k...@gmail.com,
Apr 23 2018
|
|||||||
Issue descriptionSteps to reproduce the problem: 1. Go to https://jsfiddle.net/fqoahvqo/ on a Samsung S6 or S9 (these are the only devices I've seen this issue on so far) 2. SMPTE Color Bar video should start playing 3. Keep hitting the "Run" button on the top left (or refresh the page) until you see the video fail to load (bottom right screen will stay black). I see a fail rate of about 1/5 times on these devices, but it seems to vary. What is the expected behavior? Video should play correctly when using Media Source Extensions What went wrong? Not sure. This works 100% correctly on a Pixel XL and Moto Z (and OSX/Windows Chrome). Did this work before? Yes Unsure Does this work in other browsers? Yes Chrome version: 66.0.3359.126 Channel: n/a OS Version: 10.0 Flash Version: This test video forces "Low Delay" mode so it's possible it's related to that. When the video plays correctly, Media Internals looks like: debug Video rendering in low delay mode. duration unknown found_video_stream true frame_title frame_url http://fiddle.jshell.net/_display/ height 1024 info Selected GpuVideoDecoder for video decoding, config: codec: h264 format: 1 profile: h264 high coded size: [1024,1024] visible rect: [0,0,1024,1024] natural size: [2048,1024] has extra data? false encrypted? false rotation: 0° origin_url http://fiddle.jshell.net/ pipeline_buffering_state BUFFERING_HAVE_ENOUGH pipeline_state kSuspended player_id 4 render_id 17 seek_target 42 url blob:http://fiddle.jshell.net/47aacc34-7baf-453f-894c-078edf87e10a video_buffering_state BUFFERING_HAVE_NOTHING video_codec_name h264 video_dds false video_decoder GpuVideoDecoder width 2048 And when it breaks (notice the lack of width/height): debug Video rendering in low delay mode. duration unknown found_video_stream true frame_title frame_url http://fiddle.jshell.net/_display/ info Selected GpuVideoDecoder for video decoding, config: codec: h264 format: 1 profile: h264 high coded size: [1024,1024] visible rect: [0,0,1024,1024] natural size: [2048,1024] has extra data? false encrypted? false rotation: 0° origin_url http://fiddle.jshell.net/ pipeline_state kPlaying player_id 48 render_id 3 seek_target 1 url blob:http://fiddle.jshell.net/f87bed89-1fe4-4e64-9eb1-cf2705445699 video_codec_name h264 video_dds false video_decoder GpuVideoDecoder
,
Apr 24 2018
After a little more digging it appears that sourceBuffer.appendBuffer() is silently failing. I noticed that if I call it a second time after waiting ~500ms it would get things working. I poked around the MSE spec and all of the available fields/events but I wasn't able to find anything the correlated to when it failed. Luckily I was able to find a field in Three.js that does: texture._listeners Now I fire off a setTimeout and check texture._listeners. If it's null I retry the append. It's quite ugly, but I now have a way to workaround this issue.
,
Apr 24 2018
Tested the issue using #Tested the issue in Android and able to reproduce the issue. Similar behavior is observed since Chrome #60.0.3072.0 and M58 Steps Followed: 1. Launched the Chrome Browser. 2. Navigated to https://jsfiddle.net/fqoahvqo/ 3. Observed isn't playing Chrome versions tested: 60.0.3072.0, 66.0.3359.106(Stable), 68.0.3404.0(Canary) OS: Android 7.0.0 Android Devices: Samsung J7 This seems to be a Non-Regression issue as same behavior is seen since M60. Untriaged for further input's on this issue. Please navigate to below link for log's and screen cast-- go/chrome-androidlogs/836033 Thanks!
,
Apr 24 2018
,
Apr 24 2018
FYI, my workaround posted above seems to fix only the S6 I have locally and does not fix the issue on an S9 (tested at a T-Mobile store running Chrome 65.x).
,
Jun 19 2018
Can I get you anything else regarding this issue?
,
Jun 23 2018
,
Jun 25 2018
+MSE folks. I missed this when it was filed. Append() should never be failing silently. Is there nothing from more recent chrome version within chrome://media-internals indicating what's wrong?
,
Jun 25 2018
,
Jun 25 2018
+liberato in case there's a underlying decoder failure
,
Jun 25 2018
Dale, I no longer have one of these devices to test on, but I might be able to get one in a week or so. Does Chrome >=66 have additional info in media-internals compared to 65?
,
Jun 25 2018
If it's not easy to re-test that's okay, we have an S6 we can test on I believe and if we don't have an S9 yet we should probably order one. It's unusual for MSE to fail silently, so it's possible this is a codec bug instead.
,
Jun 25 2018
K, sounds good. Let me know how I can help otherwise. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by pnangunoori@chromium.org
, Apr 24 2018