[FFmpeg-devel] [PATCH 1/2] avformat/mxf: start to add mxf_inspect_mode and skip RIP if needed sponsored by nxtedition
Marc-Antoine Arnaud
marc-antoine.arnaud at luminvent.com
Wed Aug 14 10:59:07 EEST 2024
---
libavformat/mxfdec.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index a5863445ab5..df958819300 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -321,6 +321,7 @@ typedef struct MXFContext {
int nb_index_tables;
MXFIndexTable *index_tables;
int eia608_extract;
+ int mxf_inspect_mode;
} MXFContext;
/* NOTE: klv_offset is not set (-1) for local keys */
@@ -3713,7 +3714,9 @@ static int mxf_read_header(AVFormatContext *s)
return AVERROR_INVALIDDATA;
mxf->run_in = run_in;
- mxf_read_random_index_pack(s);
+ if (mxf->mxf_inspect_mode == 0) {
+ mxf_read_random_index_pack(s);
+ }
while (!avio_feof(s->pb)) {
const MXFMetadataReadTableEntry *metadata;
@@ -4261,6 +4264,15 @@ static const AVOption options[] = {
{ "eia608_extract", "extract eia 608 captions from s436m track",
offsetof(MXFContext, eia608_extract), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1,
AV_OPT_FLAG_DECODING_PARAM },
+ { "mxf_inspect_mode", "the way to inspect MXF file",
+ offsetof(MXFContext, mxf_inspect_mode), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1,
+ AV_OPT_FLAG_DECODING_PARAM, .unit = "mxf_inspect_mode" },
+ { "rip", "Parse RIP, then every body partition",
+ 0, AV_OPT_TYPE_CONST, {.i64 = 0}, INT_MIN, INT_MAX,
+ AV_OPT_FLAG_DECODING_PARAM, .unit = "mxf_inspect_mode" },
+ { "header", "Parse Header, first partition and next partitions if needed",
+ 0, AV_OPT_TYPE_CONST, {.i64 = 1}, INT_MIN, INT_MAX,
+ AV_OPT_FLAG_DECODING_PARAM, .unit = "mxf_inspect_mode" },
{ NULL },
};
--
2.39.3 (Apple Git-146)
More information about the ffmpeg-devel
mailing list