[HLSTree] Reworked multivariant playlist parser #1349
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Superseed closed PR #1342 because i preferred rewrite part of the parser to solve in better way the parsing problem mentioned here #1342 (comment)
Problem solved:
Other changes:
The HLS parser now dont have the needs of the "adaptation sets merging" that was inside the
AdaptiveTree::SortTree
method, so now has been reworked for dash case only, the reason behind is due to amazon manifests that appears to have uncommon adaptation sets with same data, for this reason i have add a new test caseAdaptionSetMerge
so to not forgot in future this peculiarity.AdaptiveTree::SortTree
method now does exactly what it describes and does not merge adpsets.i am somewhat puzzled as to how "adaptation sets merging" was in the past implemented because:
Moving this code i have also limited the adaptation set merging with adaptation sets containing the same codec, currently mixing more codecs to the same adaptation set can cause broken playback, because we have no way to determine supported codecs in advance and also currently there is no way to fallback if playback dont works with a specific codec
fix #1259
How has this been tested?
https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel-hoh-subs.ism/.m3u8
https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-ts/master.m3u8
and HLS audio stream from
https://stream.rtl.lu/live/hls/radio/rtllx
Screenshots (if appropriate):
Types of change
Checklist: