mbox series

[FFmpeg-devel,v4,0/2] TTML in MP4, part 1

Message ID 20210816122612.7444-1-jeebjp@gmail.com
Headers show
Series TTML in MP4, part 1 | expand

Message

Jan Ekström Aug. 16, 2021, 12:26 p.m. UTC
To keep it simpler this first part includes only non-fragmented use
cases if the built-in sample squashing is utilized. Contains the basic
mapping code as well as the function that writes out the squashed documents.

Works with both subtitle-only output as well as with other streams.

In a separate patch set I will add additional complexity on top
by introducing fragmentation matching based on the other streams in
the mux (since most things that ingest fragmented MP4 with subtitles
want the fragment time ranges to match between the video/audio streams
and subtitles in the mux).

Changes from v3:

* avformat/ttmlenc: added const to the function argument codecpar, and switched
                    included header from avformat.h to specifically
                    libavcodec/codec_par.h according to comments from Andreas.
* avformat/movenc_ttml: applied recommendation from Andreas to deduplicate
                        AVFormatContext cleanup.

Jan

Jan Ekström (2):
  avformat/ttml: split TTML paragraph based or not check into header
  avformat/movenc: add support for TTML muxing

 libavformat/Makefile             |   2 +-
 libavformat/isom.h               |   3 +
 libavformat/movenc.c             | 179 ++++++++++++++++++++++++++++++-
 libavformat/movenc.h             |   5 +
 libavformat/movenc_ttml.c        | 171 +++++++++++++++++++++++++++++
 libavformat/movenc_ttml.h        |  31 ++++++
 libavformat/ttmlenc.c            |   9 +-
 libavformat/ttmlenc.h            |  39 +++++++
 tests/fate/subtitles.mak         |   4 +
 tests/ref/fate/sub-ttml-mp4-dfxp |  44 ++++++++
 tests/ref/fate/sub-ttml-mp4-stpp |  44 ++++++++
 11 files changed, 521 insertions(+), 10 deletions(-)
 create mode 100644 libavformat/movenc_ttml.c
 create mode 100644 libavformat/movenc_ttml.h
 create mode 100644 libavformat/ttmlenc.h
 create mode 100644 tests/ref/fate/sub-ttml-mp4-dfxp
 create mode 100644 tests/ref/fate/sub-ttml-mp4-stpp

Comments

Jan Ekström Aug. 23, 2021, 8:31 a.m. UTC | #1
On Mon, Aug 16, 2021 at 3:26 PM Jan Ekström <jeebjp@gmail.com> wrote:
>
> To keep it simpler this first part includes only non-fragmented use
> cases if the built-in sample squashing is utilized. Contains the basic
> mapping code as well as the function that writes out the squashed documents.
>
> Works with both subtitle-only output as well as with other streams.
>
> In a separate patch set I will add additional complexity on top
> by introducing fragmentation matching based on the other streams in
> the mux (since most things that ingest fragmented MP4 with subtitles
> want the fragment time ranges to match between the video/audio streams
> and subtitles in the mux).
>
> Changes from v3:
>
> * avformat/ttmlenc: added const to the function argument codecpar, and switched
>                     included header from avformat.h to specifically
>                     libavcodec/codec_par.h according to comments from Andreas.
> * avformat/movenc_ttml: applied recommendation from Andreas to deduplicate
>                         AVFormatContext cleanup.
>
> Jan
>
> Jan Ekström (2):
>   avformat/ttml: split TTML paragraph based or not check into header
>   avformat/movenc: add support for TTML muxing
>
>  libavformat/Makefile             |   2 +-
>  libavformat/isom.h               |   3 +
>  libavformat/movenc.c             | 179 ++++++++++++++++++++++++++++++-
>  libavformat/movenc.h             |   5 +
>  libavformat/movenc_ttml.c        | 171 +++++++++++++++++++++++++++++
>  libavformat/movenc_ttml.h        |  31 ++++++
>  libavformat/ttmlenc.c            |   9 +-
>  libavformat/ttmlenc.h            |  39 +++++++
>  tests/fate/subtitles.mak         |   4 +
>  tests/ref/fate/sub-ttml-mp4-dfxp |  44 ++++++++
>  tests/ref/fate/sub-ttml-mp4-stpp |  44 ++++++++
>  11 files changed, 521 insertions(+), 10 deletions(-)
>  create mode 100644 libavformat/movenc_ttml.c
>  create mode 100644 libavformat/movenc_ttml.h
>  create mode 100644 libavformat/ttmlenc.h
>  create mode 100644 tests/ref/fate/sub-ttml-mp4-dfxp
>  create mode 100644 tests/ref/fate/sub-ttml-mp4-stpp
>

Unless there are objections, I will pull this in soon as all the
previously received reviews/comments were taken into account.

Jan
Jan Ekström Aug. 25, 2021, 6:51 a.m. UTC | #2
On Mon, Aug 23, 2021 at 11:31 AM Jan Ekström <jeebjp@gmail.com> wrote:
>
> On Mon, Aug 16, 2021 at 3:26 PM Jan Ekström <jeebjp@gmail.com> wrote:
> >
> > To keep it simpler this first part includes only non-fragmented use
> > cases if the built-in sample squashing is utilized. Contains the basic
> > mapping code as well as the function that writes out the squashed documents.
> >
> > Works with both subtitle-only output as well as with other streams.
> >
> > In a separate patch set I will add additional complexity on top
> > by introducing fragmentation matching based on the other streams in
> > the mux (since most things that ingest fragmented MP4 with subtitles
> > want the fragment time ranges to match between the video/audio streams
> > and subtitles in the mux).
> >
> > Changes from v3:
> >
> > * avformat/ttmlenc: added const to the function argument codecpar, and switched
> >                     included header from avformat.h to specifically
> >                     libavcodec/codec_par.h according to comments from Andreas.
> > * avformat/movenc_ttml: applied recommendation from Andreas to deduplicate
> >                         AVFormatContext cleanup.
> >
> > Jan
> >
> > Jan Ekström (2):
> >   avformat/ttml: split TTML paragraph based or not check into header
> >   avformat/movenc: add support for TTML muxing
> >
> >  libavformat/Makefile             |   2 +-
> >  libavformat/isom.h               |   3 +
> >  libavformat/movenc.c             | 179 ++++++++++++++++++++++++++++++-
> >  libavformat/movenc.h             |   5 +
> >  libavformat/movenc_ttml.c        | 171 +++++++++++++++++++++++++++++
> >  libavformat/movenc_ttml.h        |  31 ++++++
> >  libavformat/ttmlenc.c            |   9 +-
> >  libavformat/ttmlenc.h            |  39 +++++++
> >  tests/fate/subtitles.mak         |   4 +
> >  tests/ref/fate/sub-ttml-mp4-dfxp |  44 ++++++++
> >  tests/ref/fate/sub-ttml-mp4-stpp |  44 ++++++++
> >  11 files changed, 521 insertions(+), 10 deletions(-)
> >  create mode 100644 libavformat/movenc_ttml.c
> >  create mode 100644 libavformat/movenc_ttml.h
> >  create mode 100644 libavformat/ttmlenc.h
> >  create mode 100644 tests/ref/fate/sub-ttml-mp4-dfxp
> >  create mode 100644 tests/ref/fate/sub-ttml-mp4-stpp
> >
>
> Unless there are objections, I will pull this in soon as all the
> previously received reviews/comments were taken into account.
>

Applied as 460beb948ceddeb86bd2b3b17335176adcaa7223 and
e41bd075dd56f20f4eca61790bda5bf88c433bcb .

Jan