[FFmpeg-devel] [PATCH 1/5] [IMF demuxer] build system
pal at sandflow.com
pal at sandflow.com
Thu Sep 23 20:00:38 EEST 2021
From: Pierre-Anthony Lemieux <pal at palemieux.com>
Signed-off-by: Pierre-Anthony Lemieux <pal at 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.
+ at 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
More information about the ffmpeg-devel
mailing list