mbox series

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

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

Message

Jan Ekström Dec. 12, 2023, 7:32 a.m. UTC
Changes compared to v2:

* General rebase.
* Limited the test to the first overlapping lines that
  finish at around 24.5 seconds. This brings us down to 430 lines
  per test (of which there are two).
* Switched from the rawvideo to the data muxer.

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/avpacket.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