All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- EXT-X-SESSION-KEY support
- EXT-X-CONTENT-STEERING support
- EXT-X-START to master playlist
- EXT-X-START was not written for negative values
- EXT-X-MAP is written when changed
- Refactored EXT-X-DEFINE and EXT-X-MAP parsing and writing
v0.3.0 2025-01-14
- Support for multiple EXT-X-DATERANGE tags in a media playlist
- SCTE-35 EXT-X-DATERANGE tags are attached to current segment
- MediaPlaylist.SCTE35Syntax() method
- SCTE35Syntax has String() method
- EXT-X-DEFINE support in both master and media playlists
- EXT-X-SESSION-DATA support
- EXT-X-DATERANGE for SCTE-35 are stored as slice in Segment
- SCTE35Syntax type has a new default SCTE35_NONE
v0.2.0 2025-01-07
- FORCED and AUTOSELECT types changed from string to bool
- Removed SUBTITLES from EXT-X-MEDIA since not in [rfc8216bis-16][rfc8216-bis]
- Changed tests to use matryer.is for conciseness
- Improved documentation
- TargetDuration is now an uint
- PROGRAM-ID parameter is obsolete from version 6. Changed from uin32 to *int.
- Only remove quotes on Quoted-String parameters, and not in general.
- Complete list of EXT-X-MEDIA attributes: ASSOC-LANGUAGE, STABLE-RENDITION-ID, INSTREAM-ID, BIT-DEPTH, SAMPLE-RATE
- GetAllAlternatives() method to MasterPlaylist
- Improved playlist type detection
- Support for SCTE-35 signaling using EXT-X-DATERANGE (following [rfc8216-bis][rfc8216-bis])
- Support for full EXT-X-DATERANGE parsing and writing
- TARGETDURATION calculation depends on HLS version
- New function CalculateTargetDuration
- New method MediaPlaylist.SetTargetDuration that sets and locks the value
- Full parsing and rendering of EXT-X-STREAM-INF parameters
- FUll parsing and writing of EXT-X-I-FRAME-STREAM-INF parameters
- EXT-X-ALLOW-CACHE support in MediaPlaylist (obsolete since version 7)
- Renditions were not properly distributed to Variants
- EXT-X-KEY was written twice before first segment
- FORCED attribute had quotes
- Removed HLSv2 support (integer EXTINF durations)
The following changes are wrt to initial copy of grafov/m3u8 files:
- code changes to pass linting including Example names
- made errors more consistent and more verbose
- removed all Widevine-specific HLS extensions (obsolete)
- initial version of the repo