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

EMSG boxes are not being completely parsed #1340

Closed
chrisfillmore opened this issue Mar 6, 2018 · 2 comments
Closed

EMSG boxes are not being completely parsed #1340

chrisfillmore opened this issue Mar 6, 2018 · 2 comments
Assignees
Labels
status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@chrisfillmore
Copy link
Contributor

Have you read the FAQ and checked for duplicate open issues?:
Yes

What version of Shaka Player are you using?:
2.3.3

Can you reproduce the issue with our latest release version?:
Yes

Can you reproduce the issue with the latest code from master?:
Did not check

Are you using the demo app or your own custom app?:
Custom app

If custom app, can you reproduce the issue using our demo app?:
Unknown. Does any demo content contain emsg boxes?

What browser and OS are you using?:
Chrome on macOS

What are the manifest and license server URIs?:
I could potentially provide a demo app to reproduce, if required. But I think you can follow the thread through the code to see the issue.

What did you do?
Attempt to play one of our live DAI streams which contains EMSG boxes.

What did you expect to happen?
All EMSG boxes should get parsed and published.

What actually happened?
We only see one EMSG box published (out of three, I believe) per segment.

We just upgraded from 2.2.8 to 2.3.3. We now have a problem with emsg boxes not being parsed/published. It looks like the bug was introduced in a93455a. Specifically, StreamingEngine#parseEMSG_ now does:

box.parser.stop();

...and Mp4Parser#parse now checks if !this.done_ while parsing:

while (reader.hasMoreData() && !this.done_) {
  this.parseNext(0, reader, opt_partialOkay);
}

Since parseEMSG_ is passed to Mp4Parser#fullBox as the definition, and this is invoked each time Mp4Parser#parseNext is called, the parser stops parsing after the first emsg box.

This was introduced in v2.3.0 but I don't see mention of #1106 in the release notes.

@TheModMaker TheModMaker self-assigned this Mar 6, 2018
@TheModMaker TheModMaker added the type: bug Something isn't working correctly label Mar 6, 2018
@TheModMaker TheModMaker added this to the v2.4 milestone Mar 6, 2018
@chrisfillmore
Copy link
Contributor Author

Thanks @TheModMaker!

joeyparrish pushed a commit that referenced this issue Mar 21, 2018
Closes #1340

Change-Id: I6e539ee54ca77f2069fd74c28f8e0d3ed870860f
@joeyparrish
Copy link
Member

Fix cherry-picked for v2.3.4.

@shaka-project shaka-project locked and limited conversation to collaborators May 6, 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 type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

4 participants