Blink does not handle decode error as expected
Reported by
janus.z...@gmail.com,
Mar 17 2016
|
||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Example URL: Steps to reproduce the problem: 1. Drag the attached file in a Chrome tab 2. Press play 3. Wait for eternity What is the expected behavior? The video should start. What went wrong? The video didn't start! Did this work before? N/A Is it a problem with Flash or HTML5? HTML5 Does this work in other browsers? Yes Chrome version: 49.0.2623.87 Channel: stable OS Version: OS X 10.11.1 Flash Version: Shockwave Flash 21.0 r0 This DOES work in Canary when the video is loaded via MSE, but won't work when it is loaded via a regular video-tag. Does NOT work in MSE either on current stable.
,
Mar 17 2016
Not sure why it would work in MSE but not src=.
,
Mar 17 2016
That stream doesn't work in MSE on ToT. Per chrome://media-internals: 00:00:00 82 error Failure parsing MP4: Detected unfragmented MP4. Media Source Extensions require ISO BMFF moov to contain mvex to indicate that Movie Fragments are to be expected. janus.zone@: Are you certain that the video you attached played for Canary Chrome using MSE? If so, please specify more details (Chrome version, chrome://media-internals output for the MSE player). This stream doesn't appear to be compliant with MSE's ISO-BMFF bytestream format (for reasons indicated in the error message, above). See also https://w3c.github.io/media-source/isobmff-byte-stream-format.html
,
Mar 17 2016
,
Mar 17 2016
This video is corrupted beyond reasonable ability to work around. Playing with ffplay prints these messages (in bold red): [h264 @ 0x7ff5f00049e0] SPS changed in the middle of the frame0/0 [h264 @ 0x7ff5f00049e0] decode_slice_header error [h264 @ 0x7ff5f00049e0] concealing 360 DC, 360 AC, 360 MV errors in I frame [h264 @ 0x7ff5f00079c0] SPS changed in the middle of the frame [h264 @ 0x7ff5f00079c0] decode_slice_header error [h264 @ 0x7ff5f00079c0] concealing 360 DC, 360 AC, 360 MV errors in I frame The error reported by the Mac OS X platform decoder (to stderr) is less specific: GVA error: scheduleDecodeFrame kVTVideoDecoderBadDataErr, error in field pic flags
,
Mar 18 2016
@wolenetz: The file was not loaded in MSE directly, but first converted to chunked MP4. I can send the binary files if needed. The bug isn't in the fact that the video won't play necessarily. It would also be acceptable if an error is thrown. This is however not the case. The player goes in a playing state but does not start playback.
,
Mar 18 2016
Re-opening. The decode error event is being emitted correctly, but Blink isn't acting like it found out. Updating title for clarity.
,
Mar 18 2016
w.r.t. MSE: Without a set of repro steps of the exact sequence of MSE API operations, it's hard to say why stable Chrome doesn't work and Canary does, though I very strongly suspect that the fix (in M50) for bug 229412 is the reason. This doesn't change the apparent fact that sandersd@ reports a (decode?) error event is not triggering pipeline/blink/htmlmediaelement transition to error state for regular src= playback for the file attached in OP.
,
Mar 18 2016
,
Mar 18 2016
+philipj@ This is looking like it may be a Blink bug. Media channel looks like this: setNetworkState(6) mediaEngineError(3) setShouldDelayLoadEvent(false) video.error returns 3, but the controls stay enabled.
,
Mar 18 2016
Looking further, I'm not sure the controls are supposed to become disabled, this may be WAI. If that's the case (Philip can shed light there), then the situation is actually that there is an error event being emitted. The only thing that's not happening is some visual indication to the user. This is similar to what happens when an unsupported media format is provided, c.f. https://bugs.chromium.org/p/chromium/issues/detail?id=587678#c8
,
Apr 6 2016
That's right, the media controls aren't doing anything very smart in the case of errors. dalecurtis@ just changed them so at least the media element is paused, but it's still a far way from obvious that there was an error.
,
Apr 6 2016
Okay, then given that I cannot reproduce the error event not being emitted, there does not appear to be a bug here. There is already ongoing work to improve communication when errors occur (eg. issue 472253 , but there are also plans to visually change the element), I'll close this in preference to those threads. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by yini...@chromium.org
, Mar 17 2016Owner: dalecur...@chromium.org
Status: Assigned (was: Unconfirmed)