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

FilterNewVariants method is never called when there is a manifest update. #1574

Closed
SemihGk opened this issue Sep 4, 2018 · 2 comments
Closed
Labels
status: archived Archived and locked; will not be updated type: question A question from the community

Comments

@SemihGk
Copy link
Contributor

SemihGk commented Sep 4, 2018

Have you read the FAQ and checked for duplicate open issues?:
yes
What version of Shaka Player are you using?:
master
Can you reproduce the issue with our latest release version?:
yes
Can you reproduce the issue with the latest code from master?:
yes
Are you using the demo app or your own custom app?:
demo app
If custom app, can you reproduce the issue using our demo app?:
yes
What browser and OS are you using?:
Chrome MacOS
What are the manifest and license server URIs?:

It is happening on all live stream. I tested Big Bug Bunny (Live) asset on the demo app.
What did you do?
Just started a live stream.
What did you expect to happen?
filterNewPeriods should be called when there is a manifest update.
What actually happened?
This method is never called.

This might be a potential question as I am not certain, but I would like to learn whether this is a bug or not. Shaka player calls filterAllPeriods method when initiating a live stream. As for same logic, manifest updates should also be filtered out here as you can read the comments. However, that block never gets called due to this check. Let's say, initiated manifest period id = 0. When there is a new manifest update, next manifest period id may also be 0 because period id does not necessarily have to be unique. That's why that if block would never be called.

My question is that does shaka player assume periods which have the same id would always have the same type of variants(codec profile etc)? For instance, shaka player should only filter out variants when a next manifest has an extra period or period id is changed instead of calling for all new period variants?

@TheModMaker
Copy link
Contributor

That is working as intended, DASH requires that all Periods have unique IDs. If a manifest update has a Period with the same ID, it needs to represent the same content and have the same streams in it. You can't reuse Period IDs for new Periods and can't change streams during playback. New Periods need a new ID, but can have different streams than the previous; but an existing Period can't change streams.

Period IDs are used to associate the previous manifest update with this one. It allows us to determine which of the Periods from the previous manifest update correspond with the Period in this update. So the same Period needs to have the same ID and new Periods need to use different IDs.

Note that if a Period doesn't have an id attribute, we will generate an ID based on the start time of the Period.

@TheModMaker TheModMaker added type: question A question from the community and removed needs triage labels Sep 4, 2018
@SemihGk
Copy link
Contributor Author

SemihGk commented Sep 5, 2018

Thank you so much for your response, @TheModMaker The reason I asked is that there is a discussion going on #1567 . It looks like shaka player should support codec profile change during live playback. So, I was not quite sure that must period Id be changed if codec profile changes. As for your comments, it has to be. It looks like our stream also changes this periodId all the time when there is a codec profile change. Thanks a lot. We can close this ticket so.

@SemihGk SemihGk closed this as completed Sep 5, 2018
@shaka-project shaka-project locked and limited conversation to collaborators Nov 4, 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: question A question from the community
Projects
None yet
Development

No branches or pull requests

3 participants