Commits on Source (15)
-
3cfdf08e
-
Let's just store the parameters directly in the segment structure. This is far more flexible and de-couple the stored config info in the segment from what's passed to the init function.
593e01e5 -
Preparation work for the introduction of mp4frag and webVTT segments.
532df37c -
1d592200
-
8e0f73b0
-
Write them as a global access error.
673e3679 -
This is needed in future patches notably to switch to segment extraction at access output level. Visibility of all the playlists will be needed to write all the segments at the same time.
9cfe3909 -
e97a5de0
-
The segmentation was previously done in SetPCR to output segments at precise stream times instead of reliying on the quantity of data output by the muxers. This had two main issues: - SetPCR does not report errors and the segment creation phase can fail at multiple stages. - The calculated stream time did not actually reflect the quantity of data that left muxers. Muxers can be delayed by mux caching and are allowed to have an internal queue. The previous algorithm was outputting smaller segments due to the muxer delay. Those issues were fine with TS as a single muxer but with the future introduction of VTT/FMP4 segmentation that both make choice base on segment times, we needed to change the segmenting strategy. Segmentation is now done at muxer output, bigger segments are output when all the muxers sent the right amount of data.
0335dee9 -
Those will be used as a delimitation hint from muxers. WebVTT, TS and mp4frag will use those eventually.
86755ae7 -
This will be used by HLS to properly segment subtitles.
b0c1db5b -
The subtitle segmenter is a meta-muxer used to create subtitles segments. It handles subtitle frames splitting, re-creation of the subtitles muxer and empty segments creation when no data is available.
659a9c53 -
f8c79b09
-
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. WebVTT segmentation in scenario where no subtitle is output for a while is handled using the PCR of the stream. Having reliable clock info helps a lot to create empty subtitle segments at the correct time.
bcfdf128 -
Holding this reference that breaks encapsulation can easily be avoided now by passing the sout context to the extraction function.
39a6f9b4
Showing
- modules/mux/webvtt.c 3 additions, 0 deletionsmodules/mux/webvtt.c
- modules/stream_out/Makefile.am 2 additions, 1 deletionmodules/stream_out/Makefile.am
- modules/stream_out/hls/codecs.c 11 additions, 1 deletionmodules/stream_out/hls/codecs.c
- modules/stream_out/hls/hls.c 187 additions, 108 deletionsmodules/stream_out/hls/hls.c
- modules/stream_out/hls/hls.h 11 additions, 0 deletionsmodules/stream_out/hls/hls.h
- modules/stream_out/hls/segments.c 29 additions, 7 deletionsmodules/stream_out/hls/segments.c
- modules/stream_out/hls/segments.h 7 additions, 1 deletionmodules/stream_out/hls/segments.h
- modules/stream_out/hls/subtitles_segmenter.c 335 additions, 0 deletionsmodules/stream_out/hls/subtitles_segmenter.c
- test/Makefile.am 7 additions, 0 deletionstest/Makefile.am
- test/modules/stream_out/hls/subtitles_segmenter.c 461 additions, 0 deletionstest/modules/stream_out/hls/subtitles_segmenter.c
modules/stream_out/hls/subtitles_segmenter.c
0 → 100644