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

Unexpected IllegalStateException: Top bit not zero When playing live dash stream #2500

Closed
Naveen898989 opened this issue Feb 25, 2017 · 4 comments

Comments

@Naveen898989
Copy link

  • We have a DASH test stream that we are trying to play but its not working. Player gives "Top bit not zero" error. It seems to be thrown when retrieving the NAL length. The first few NAL values seem to be fine. Suddenly, an incorrect NAL value comes in and after that it all goes down hill.
    log.txt
  • I am using r2.2.0
  • Tested on Nexus 5x (Android 7.1), Samsung Tab 4 (Android 6.0.1)

Please let me know if you need anything else.

@ojw28
Copy link
Contributor

ojw28 commented Feb 25, 2017

Given we're able to play DASH content provided by many providers successfully, I think it's likely this is a content issue. Please validate the correctness of the video segments. If you can point to a specific thing in the media that's valid but we're not handling correctly, please let us know.

@Naveen898989
Copy link
Author

The streams seems to be working on a couple of other players. Unfortunately, I do not know why it is failing. Is there a way for me to check the stream itself for correctness?

@ojw28
Copy link
Contributor

ojw28 commented Feb 27, 2017

At a high level it looks like the NAL unit lengths aren't specified correctly. The parsing logic ends up out of sync with the NAL unit headers and starts reading clearly incorrect lengths, leading to the failure. I think you'll need to spend some time debugging this yourself.

You may have to resort to manually inspecting and understanding the bitstream to see what's wrong, unfortunately. This is quite time consuming, and given this appears to be an isolated case we don't have cycles to help. If you discover the bitstream is valid and we're failing to handle some obscure case, please let us know specifically what that case is and we'll take another look.

You could also try reporting/discussing the issue with whoever provides the encoder and/or packager that's generating these streams.

@ojw28 ojw28 closed this as completed Feb 27, 2017
@Naveen898989
Copy link
Author

Thanks for the reply. You are right, in fact the sample sizes and the NAL lengths do not align. When a NAL length comes in that goes beyond the current sample size it skips reading all the data. Next time it reads the NAL it reads in a wrong position. I am not sure if this is a valid case or not, I just wanted you to know.

@google google locked and limited conversation to collaborators Jun 28, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants