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

Quality selection when switching between AdpatationSets with different codecs #4525

Open
dsilhavy opened this issue Jul 1, 2024 · 1 comment

Comments

@dsilhavy
Copy link
Collaborator

dsilhavy commented Jul 1, 2024

Description

The SupplementalProperty urn:mpeg:dash:adaptation-set-switching:2016 allows the player to switch between Representations of different AdaptationSets.

The current switching logic in dash.js heavily relies on the bandwidth attribute. This means we will always choose the highest bitrate possible. When switching between Representations of different AdaptationSets we end up in scenarios in which we can switch between different codec families e.g. between HEVC and AVC. In this case it is not always the best choice to simply choose the highest bitrate. As an example:

  • HEVC has a 4k resolution with 5Mbit
  • AVC has a 4k resolution with 10Mbit

In the above example, the HEVC Representation might still provide a better quality than the AVC Representation despite being encoded with a lower bitrate.

Solution

Discuss how the player should behave in case the is no qualityRankingattribute specified in the MPD.

@dsilhavy
Copy link
Collaborator Author

dsilhavy commented Jul 1, 2024

Comment by @haudiobe

  1. there is an equivalence indicator that says that qualityRankings are comparable across Adaptation Sets
  2. There may be an API with the app to check if the app has a priority list
  3. Do you have indication whether a codec is implemented in HW (Media Capability API has this)?
  4. In the absence of all of this, i.e. only codecs specified, resolutions and bitrates, I would go for something like lowest bits per pixel in case resolutions are the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

1 participant