Skip to content

Conversation

@bastimeyer
Copy link
Member

A bunch of SegmentList (and SegmentTemplate) fixes. Motivation in each commit message.

Changes are required for implementing SegmentTimeline processing in SegmentList later on (YouTube live streams with timeshift).

- Turn `SegmentList` into an only-child in `Period`, `AdaptationSet`
  and `Representation`
- Set `parent` type in `SegmentList`
- Turn `SegmentList.segments` from a property into a regular method,
  similar to `SegmentTemplate.segments()`
Inherit attributes from ancestor `SegmentList` nodes, if set,
similar to `SegmentTemplate`.

Also fix `presentationTimeOffset` not being inherited in
`SegmentTemplate`.

TODO: use common `MultipleSegmentBaseType` class for these attributes
The number of `SegmentURL` nodes in `SegmentList` can be zero, e.g. when
the `SegmentList` gets overridden in a descendant node
- Fix `SegmentTimeline` in `SegmentTemplate` and find ancestor timelines
- Add `SegmentTimeline` to `SegmentList` (currently unused)
@bastimeyer bastimeyer force-pushed the stream/dash/fix-segment-list branch from a52c80b to ab7de68 Compare March 14, 2023 08:05
@gravyboat gravyboat merged commit b2159a9 into streamlink:master Mar 14, 2023
@bastimeyer bastimeyer deleted the stream/dash/fix-segment-list branch March 14, 2023 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants