sout: hls: implement segmented subtitles
Context
The segmented webVTT support is introduced to the HLS module for subtitle support in the upcoming Chromecast module rework. For a more detailed context about HLS and Chromecast, please refer to #27391.
MR content
WebVTT and plain subtitle tracks can now be exposed in HLS. An extra media rendition is created for each subtitle ES and the HLS server creates max-sized vtt segments following the pace of the other ES.
The VTT segments are created via a meta-muxer, the hls_sub_segmenter. It handles subtitle frames splitting, re-creation of the
subtitles muxer and empty segments creation when no data is available.
Some rework needed to be done first, especially the segmentation that was
previously done in SetPCR. It was moved to the access output, see the related
commit for explanations.
What's next ?
- Best effort algorithm to always start segments with a key-frame
- Fragmented MP4 support (Necessary for Chromecast HEVC support...)
- Expand codec support (HEVC,VP9/8)