mbox series

[FFmpeg-devel,v4,0/3] Initial support for fragmented TTML muxing

Message ID 20241024122659.676104-1-jeebjp@gmail.com
Headers show
Series Initial support for fragmented TTML muxing | expand

Message

Jan Ekström Oct. 24, 2024, 12:26 p.m. UTC
Changes compared to v3:

* General rebase.

This enables pushing TTML together with another track (usually video)
as part of CMAF Ingest, as defined by the DASH-IF Live Media Ingest
Protocol.

Currently does not function well with just the subtitle track unless
the API user explicitly requests fragmentation with a nullptr packet,
as the generic fragmentation decision logic is based on tracks which
do not require squashing.

Currently does support overlapping subtitles, but the implementation
utilizes another packet queue for it, which is probably not optimal.
Recommendations on how to improve things are welcome.

Jan

Jan Ekström (3):
  tests/fate-run: add support for specifying the final encode muxer in
    `transcode`
  avcodec/avpacket: add functionality to prepend to AVPacketLists
  avformat/movenc: add support for fragmented TTML muxing

 libavcodec/packet.c                         |  20 +-
 libavcodec/packet_internal.h                |   2 +
 libavformat/movenc.c                        |   9 -
 libavformat/movenc_ttml.c                   | 157 ++++++-
 tests/fate-run.sh                           |   4 +-
 tests/fate/mov.mak                          |  21 +
 tests/ref/fate/mov-mp4-fragmented-ttml-dfxp | 430 ++++++++++++++++++++
 tests/ref/fate/mov-mp4-fragmented-ttml-stpp | 430 ++++++++++++++++++++
 8 files changed, 1054 insertions(+), 19 deletions(-)
 create mode 100644 tests/ref/fate/mov-mp4-fragmented-ttml-dfxp
 create mode 100644 tests/ref/fate/mov-mp4-fragmented-ttml-stpp