Skip to content
Snippets Groups Projects
  1. Feb 14, 2024
  2. Feb 12, 2024
  3. Feb 11, 2024
  4. Feb 10, 2024
    • Alaric Senat's avatar
      sout: hls: remove unneeded reference · 39a6f9b4
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      Holding this reference that breaks encapsulation can easily be avoided
      now by passing the sout context to the extraction function.
      39a6f9b4
    • Alaric Senat's avatar
      sout: hls: add webvtt support · bcfdf128
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      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
    • Alaric Senat's avatar
      test: hls: add subtitle segmentation unit tests · f8c79b09
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      f8c79b09
    • Alaric Senat's avatar
      sout: hls: add a subtitle segmenter · 659a9c53
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      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
    • Alaric Senat's avatar
      mux: webvtt: signal header blocks · b0c1db5b
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      This will be used by HLS to properly segment subtitles.
      b0c1db5b
    • Alaric Senat's avatar
      sout: hls: keep track of output header blocks · 86755ae7
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      Those will be used as a delimitation hint from muxers. WebVTT, TS and
      mp4frag will use those eventually.
      86755ae7
    • Alaric Senat's avatar
      sout: hls: move segmentation to access output · 0335dee9
      Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
      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
Loading