Hi all, Sample content is available at:
http://ffmpeg-imf-samples-public.s3-website-us-west-1.amazonaws.com/countdown/CPL_f5095caa-f204-4e1c-8a84-7af48c7ae16b.xml Looking forward to the feedback. Best, -- Pierre On Thu, Sep 23, 2021 at 10:01 AM <p...@sandflow.com> wrote: > > From: Pierre-Anthony Lemieux <p...@palemieux.com> > > Signed-off-by: Pierre-Anthony Lemieux <p...@palemieux.com> > --- > > Notes: > Modify the FFMPEG build system to add support for an IMF demuxer. The > Interoperable Master Format (IMF) is a file-based media format for the > delivery and storage of professional audio-visual masters. An IMF Composition > consists of an XML playlist (the Composition Playlist) and a collection of > MXF files (the Track Files). The Composition Playlist (CPL) assembles the > Track Files onto a timeline, which consists of multiple tracks. The location > of the Track Files referenced by the Composition Playlist is stored in one or > more XML documents called Asset Maps. More details at > https://www.imfug.com/explainer. The IMF standard was first introduced in > 2013 and is managed by the SMPTE. > > MAINTAINERS | 1 + > configure | 3 ++- > doc/demuxers.texi | 6 ++++++ > libavformat/Makefile | 2 ++ > libavformat/allformats.c | 1 + > 5 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/MAINTAINERS b/MAINTAINERS > index dcac46003e..7a6972fe1a 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -433,6 +433,7 @@ Muxers/Demuxers: > idroqdec.c Mike Melanson > iff.c Jaikrishnan Menon > img2*.c Michael Niedermayer > + imf*.c Marc-Antoine Arnaud, Pierre-Anthony > Lemieux, Valentin Noël > ipmovie.c Mike Melanson > ircam* Paul B Mahol > iss.c Stefan Gehrer > diff --git a/configure b/configure > index 231d0398a8..c9f815296b 100755 > --- a/configure > +++ b/configure > @@ -297,7 +297,7 @@ External library support: > --enable-libxvid enable Xvid encoding via xvidcore, > native MPEG-4/Xvid encoder exists [no] > --enable-libxml2 enable XML parsing using the C library libxml2, > needed > - for dash demuxing support [no] > + for dash and imf demuxing support [no] > --enable-libzimg enable z.lib, needed for zscale filter [no] > --enable-libzmq enable message passing via libzmq [no] > --enable-libzvbi enable teletext support via libzvbi [no] > @@ -3363,6 +3363,7 @@ hls_muxer_select="mpegts_muxer" > hls_muxer_suggest="gcrypt openssl" > image2_alias_pix_demuxer_select="image2_demuxer" > image2_brender_pix_demuxer_select="image2_demuxer" > +imf_demuxer_deps="libxml2" > ipod_muxer_select="mov_muxer" > ismv_muxer_select="mov_muxer" > ivf_muxer_select="av1_metadata_bsf vp9_superframe_bsf" > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > index 1c9575b2e8..37efe6ce1a 100644 > --- a/doc/demuxers.texi > +++ b/doc/demuxers.texi > @@ -267,6 +267,12 @@ which streams to actually receive. > Each stream mirrors the @code{id} and @code{bandwidth} properties from the > @code{<Representation>} as metadata keys named "id" and "variant_bitrate" > respectively. > > +@section imf > + > +Interoperable Master Format demuxer. > + > +This demuxer presents audio and video streams found in an IMF Composition. > + > @section flv, live_flv, kux > > Adobe Flash Video Format demuxer. > diff --git a/libavformat/Makefile b/libavformat/Makefile > index c45caa3eed..42ced953f6 100644 > --- a/libavformat/Makefile > +++ b/libavformat/Makefile > @@ -284,6 +284,7 @@ OBJS-$(CONFIG_IMAGE_WEBP_PIPE_DEMUXER) += img2dec.o > img2.o > OBJS-$(CONFIG_IMAGE_XBM_PIPE_DEMUXER) += img2dec.o img2.o > OBJS-$(CONFIG_IMAGE_XPM_PIPE_DEMUXER) += img2dec.o img2.o > OBJS-$(CONFIG_IMAGE_XWD_PIPE_DEMUXER) += img2dec.o img2.o > +OBJS-$(CONFIG_IMF_DEMUXER) += imfdec.o imf_cpl.o > OBJS-$(CONFIG_INGENIENT_DEMUXER) += ingenientdec.o rawdec.o > OBJS-$(CONFIG_IPMOVIE_DEMUXER) += ipmovie.o > OBJS-$(CONFIG_IPU_DEMUXER) += ipudec.o rawdec.o > @@ -693,6 +694,7 @@ TESTPROGS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh > TESTPROGS-$(CONFIG_MOV_MUXER) += movenc > TESTPROGS-$(CONFIG_NETWORK) += noproxy > TESTPROGS-$(CONFIG_SRTP) += srtp > +TESTPROGS-$(CONFIG_IMF_DEMUXER) += imf > > TOOLS = aviocat \ > ismindex \ > diff --git a/libavformat/allformats.c b/libavformat/allformats.c > index 5471f7c16f..bad4494981 100644 > --- a/libavformat/allformats.c > +++ b/libavformat/allformats.c > @@ -211,6 +211,7 @@ extern const AVInputFormat ff_image2pipe_demuxer; > extern const AVOutputFormat ff_image2pipe_muxer; > extern const AVInputFormat ff_image2_alias_pix_demuxer; > extern const AVInputFormat ff_image2_brender_pix_demuxer; > +extern const AVInputFormat ff_imf_demuxer; > extern const AVInputFormat ff_ingenient_demuxer; > extern const AVInputFormat ff_ipmovie_demuxer; > extern const AVOutputFormat ff_ipod_muxer; > -- > 2.17.1 > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".