Skip to content
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

Decoder errors when playing Car on Safari #1015

Closed
theodab opened this issue Sep 7, 2017 · 4 comments
Closed

Decoder errors when playing Car on Safari #1015

theodab opened this issue Sep 7, 2017 · 4 comments
Assignees
Labels
status: archived Archived and locked; will not be updated status: bad content Caused by invalid, broken, or unsupported content
Milestone

Comments

@theodab
Copy link
Collaborator

theodab commented Sep 7, 2017

When playing the Car asset on Safari, it stops after ~15 seconds and throws a 3016 error, a 3015 error, and several "InvalidStateError (DOM Exception 11): The object is in an invalid state." errors. The video then enters a buffering state, but the time continues advancing forward until it reaches the end. It still plays the audio according to the little audio playing icon in the URL bar, but no sound is produced.
I've tried all of our test assets and haven't seen this with any other asset. I was testing with Safari 10.1.2.

@TheModMaker
Copy link
Contributor

The first error that occurs is a decoder error. This only happens with adaptation; when switching to an affected track manually (when we clear the buffer first), the error doesn't occur. Since this is a decoder error, this is likely a platform issue, but it may have to do with how we adapt.

@TheModMaker
Copy link
Contributor

I am fairly sure this is a limitation of the Safari decoder. This may be caused by bad content, or just that Safari doesn't support this kind of content. Safari plays other similar content fine, and it looks like we are doing all the correct things for this content.

I have reduced the problem to only when adapting (or switching without clearing the buffer). When we clear the buffer (and implicitly reset the decoder), the content plays fine. It also plays fine on the stream by itself. I think the streams are somehow incompatible with each other. I also think this only applies to the 426x240 video stream. One difference I notice between that and the other streams is that in the SPS the pic_order_cnt_type is different. The Safari decoder may not support changing this field since it changes the way frame parsing happens.

We could remove that video stream from the manifest, but we don't control the original asset (it's a YouTube test asset). We could either drop the asset completely or make a copy that doesn't have that representation.

@TheModMaker TheModMaker changed the title DOM errors when playing Car on Safari Decoder errors when playing Car on Safari Sep 11, 2017
@joeyparrish
Copy link
Member

It's not representative of YouTube-encoded content, it's old, and it's unmaintained. I move we drop it.

@TheModMaker TheModMaker added status: bad content Caused by invalid, broken, or unsupported content and removed needs triage labels Sep 11, 2017
@TheModMaker TheModMaker self-assigned this Sep 11, 2017
@TheModMaker TheModMaker added this to the v2.3.0 milestone Sep 12, 2017
joeyparrish pushed a commit that referenced this issue Sep 26, 2017
Since they are old, not being updated, and don't represent the kind of
content we want to support, just drop them.  This also avoid extra
work to handle YouTube's custom DRM callbacks.

Closes #1015

Change-Id: Iefa9b7a34cd184549ff0895e96198907cc6c8a51
@joeyparrish
Copy link
Member

The fix has been cherry-picked to v2.2.x and will be released in v2.2.2.

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated status: bad content Caused by invalid, broken, or unsupported content
Projects
None yet
Development

No branches or pull requests

4 participants