Repository navigation
Releases: tezzro/gstreamer
Release list
1.24.8-fix-seg-gap
What's Changed
Full Changelog: 1.24.8-sync-mpd-update...1.24.8-fix-seg-gap
1.24.8-sync-mpd-update
1.24.8-fix-segment-start
Full Changelog: 1.24.8-dynamic-multi-period...1.24.8-fix-segment-start
This release addresses an issue in the dashdemux2 element of GStreamer where the segment start time could overflow under certain conditions. Specifically, this problem arises when the presentationTimeOffset (PTO) is larger than the segment start time (S->t).
Such scenarios occur when attempting to set an exact start time for the MPD video using the presentation time offset. The offset allows for the playback to begin at any point within the segment timeline. However, when the calculated start_time becomes negative due to an overflow (as presentationTimeOffset exceeds S->t), the demuxer fails to play from the start of the video.
Relevant Documentation:
This behavior aligns with the timing scenarios described in the MPEG-DASH timing guidelines:

https://dashif.org/Guidelines-TimingModel/#timing-sampletimeline
1.24.8-dynamic-multi-period
Full Changelog: 1.24.8...1.24.8-dynamic-multi-period
This release includes several critical fixes for handling scenarios involving dynamic MPDs with multiple periods and non-uniform segment timing.
Fixes Included:
-
Dynamic MPD with Multiple Periods:
Issue: In dynamic MPDs with multiple periods, the last period was incorrectly assigned the duration of the previous period. This caused failures in the demuxer, particularly when locating the appropriate segment at the live edge.
Fix: The duration of the live period is now correctly set to
GST_CLOCK_TIME_NONE, ensuring accurate handling of live streams. -
Non-Uniform Segment Start Times with Gaps:
Issue: When the source MPD contained small gaps (e.g., 5 ms) between segment start times, the demuxer failed to locate the correct segment. This also caused overflows in the global segment repeat index.
Fix: The demuxer now accounts for small gaps between segments (≤5 ms), ensuring proper segment detection and preventing index overflows.
-
Global Segment Index Calculation:
Issue: The calculation of the global segment repeat index unnecessarily factored in the segment start time, despite it already being included in segment->start. This redundancy could lead to errors.
Fix: The logic was streamlined to exclude the redundant use of the segment start time, ensuring accurate repeat index calculations.