-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chromecast WebM decode failures #1065
Comments
In Shaka Player v2.2.3, I wasn't able to reproduce this on a 2nd generation Chromecast with cast firmware v1.27.96538, but could on an Ultra with cast firmware v1.22.74257. Thus the underlying cause of the crash might have been fixed in a firmware update, or it could be a new thing in the Ultra. I'll need to find an Ultra with up-to-date firmware to be sure. |
Beforehand, we stripped out all objects variables in events when serializing. This was intended to remove complicated DOM objects, and prevent the error messages from containing large amounts of unnecessary information. However, this also caused the cast receiver to strip away the detail variable in error events, thus removing all useful information from the error event. This adds a special exception to serialize for the contents of the 'detail' variable. Issue #1065 Change-Id: Ie291e317cc6e856af20af5df57ecf3b5c81ec8bd
Looks like this was a Chromecast firmware bug which has since been fixed. Current firmwares do not exhibit this problem. |
Beforehand, we stripped out all objects variables in events when serializing. This was intended to remove complicated DOM objects, and prevent the error messages from containing large amounts of unnecessary information. However, this also caused the cast receiver to strip away the detail variable in error events, thus removing all useful information from the error event. This adds a special exception to serialize for the contents of the 'detail' variable. Issue #1065 Change-Id: Ie291e317cc6e856af20af5df57ecf3b5c81ec8bd
The error-handling change has been cherry-picked to v2.2.4. |
Testing this on our shiny new Chromecast Ultra with up-to-date firmware, I am not seeing this exact crash anymore. However, I am seeing a new (?) bug with the same repro steps. After seeking back and forward for a minute or two, I get a 3015 (MEDIA_SOURCE_OPERATION_THREW) error, a 3016 (VIDEO_ERROR) error, and a 3014 (MEDIA_SOURCE_OPERATION_FAILED) error. The exact order tends to vary, and here's an example of the error objects (these were generated using the debug cast receiver, but the crash happens with the compiled one too):
Just looking at the codes and stack traces, it looks like the 3016 error is the "real" error, and the other two are just MediaSource reacting to that failure and refusing to go on. It's hard to say if this is the same error as before, and now it just doesn't crash the app, or if this is a separate error that happens to have the same repro steps, but I'm going to re-open this issue for now. |
Looks like a decode failure. What content is this? |
I was playing Sintel 4k (multicodec). |
I've renamed the issue to reflect that, and tagged it back to "needs triage" until we have determined what the bug is and whether or not it should be filed against Chromecast. |
I swear every time I look into this, the symptoms have changed completely... or, seeking back and forth repeatedly is good at revealing bugs, whatever. |
Closing due to inactivity. We can reopen if we see it again. |
The shaka-player("version": "2.3.0") playback getting halted after played for some time.Am getting the failure as PIPELINE_ERROR_DECODE.Attached the error screen shot. put up below mpd file |
@samaduttan, this issue is about WebM decode, and your content is MP4. So what you are experiencing is unrelated to this issue. In future, please file a new issue, and use the issue template to provide all the information we need to look into your report. A decode error like the one in your screenshot means that the platform (Chromecast hardware decoder in this case) was unable decode the content. Please double-check that your content is correctly encoded. If it is, please file a bug on Chromecast about this. If you need help filing a bug on Chromecast, we can help you (in a new issue). Thanks! |
I was testing an issue on the Chromecast, seeking back and forth on v2.2.2-debug, and I got a crash. Like, not just of the app, the entire Chromecast crashed and rebooted.
When it did, Shaka Player didn't handle the error well. The console spewed out a bunch of stack traces like:
Uncaught exception in event handler TypeError: Cannot read property 'severity' of undefined at Object.shakaDemo.onError_ (main.js:555) at shaka.util.FakeEventTarget.shakaDemo.onErrorEvent_ (main.js:538) at shaka.util.FakeEventTarget.dispatchEvent (fake_event_target.js:117) at shaka.cast.CastProxy.onRemoteEvent_ (cast_proxy.js:566) at shaka.cast.CastSender.onMessageReceived_ (cast_sender.js:567) at chrome-extension://pkedcjkdefgpdelpbcmbmeomcjbeemfm/cast_sender.js:90 at x (chrome-extension://pkedcjkdefgpdelpbcmbmeomcjbeemfm/cast_sender.js:52) at Wb (chrome-extension://pkedcjkdefgpdelpbcmbmeomcjbeemfm/cast_sender.js:90) at V.onMessage (chrome-extension://pkedcjkdefgpdelpbcmbmeomcjbeemfm/cast_sender.js:89) at O.h (chrome-extension://pkedcjkdefgpdelpbcmbmeomcjbeemfm/cast_sender.js:62)
Which means that the error handling code, ironically enough, had an error trying to handle the error.
Specifically, when it tried to retrieve the error from event.detail, event.detail was undefined, so it tried to get the severity of undefined. It was a player event, but because the event wasn't handled correctly any other detail has been lost.
I don't know yet if something like this happens every time the Chromecast crashes, or if this was a special result of whatever caused this crash. If it's the former, we'll want to make sure the cast sender can handle Chromecast crashes more gracefully. If it's the latter, I'll have to see if I can reliably reproduce this or what.
The text was updated successfully, but these errors were encountered: