[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 21 13:54:23 EEST 2024


Le sam. 17 août 2024 à 21:15, Marton Balint <cus at passwd.hu> a écrit :

>
>
> On Wed, 14 Aug 2024, Marc-Antoine Arnaud wrote:
>
> > ---
> > libavformat/mxfdec.c | 14 +++++++++++++-
> > 1 file changed, 13 insertions(+), 1 deletion(-)
>
> Why would you want to tune this?
>

Hi Marton

In some MXF files, index tables are present in the first body partition or
fully in the footer partition.
This patch will skip parsing all body partitions if the index table is
coherent.

Best regards,
Marc-Antoine



> Thanks,
> Marton
>
> >
> > 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)
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list