The old HLSPlaylist struct was used for both master and variants. This meant that, in many circumstances, there had to be run time checks for "playlist type" (i.e. master vs. variant). It also meant that there were interfaces that were part of HLSPlaylist that had no meaning for master playlists, which was confusing.
This PR removes the old HLSPlaylist and replaces it with MasterPlaylist and VariantPlaylist.
This was done by making a new generic PlaylistCore object that is specialized for master and variant flavors at compile time.
This is a breaking change and we have switched to version 2.0 to signify this.
Change Notes
Removed old HLSPlaylist and HLSPlaylistCore.
Added new class PlaylistCore to implement generic HLS Playlist functionality.
Added concrete versions of PlaylistCore, MasterPlaylist and VariantPlaylist.
Changes to the HLS parser (now just called Parser) to support this change.
Lots of changes all over to accommodate this change.
Global removal of HLSPlaylist and HLSParser in favor of Playlist and Parser.
README changes to support new objects.
Pre-submission Checklist
[x] I ran the unit tests locally before checking in.
[x] I made sure there were no compiler warnings before checking in.
[x] I have written useful documentation for all public code.
[x] I have written unit tests for this new feature.
Description
This PR implements feature #5.
The old
HLSPlaylist
struct was used for both master and variants. This meant that, in many circumstances, there had to be run time checks for "playlist type" (i.e. master vs. variant). It also meant that there were interfaces that were part ofHLSPlaylist
that had no meaning for master playlists, which was confusing.This PR removes the old
HLSPlaylist
and replaces it withMasterPlaylist
andVariantPlaylist
.This was done by making a new generic
PlaylistCore
object that is specialized for master and variant flavors at compile time.This is a breaking change and we have switched to version 2.0 to signify this.
Change Notes
HLSPlaylist
andHLSPlaylistCore
.PlaylistCore
to implement generic HLS Playlist functionality.PlaylistCore
,MasterPlaylist
andVariantPlaylist
.Parser
) to support this change.HLSPlaylist
andHLSParser
in favor ofPlaylist
andParser
.Pre-submission Checklist