[FFmpeg-devel] [PATCH 2/2] avformat/mxfenc: do not write index tables with the same InstanceUID
Tomas Härdin
tjoppen at acc.umu.se
Wed Mar 16 21:20:48 EET 2022
mån 2022-03-14 klockan 21:44 +0100 skrev Marton Balint:
>
>
> On Mon, 14 Mar 2022, Tomas Härdin wrote:
>
> > mån 2022-03-14 klockan 20:54 +0100 skrev Marton Balint:
> > >
> > >
> > > On Mon, 14 Mar 2022, Tomas Härdin wrote:
> > >
> > > > mån 2022-03-14 klockan 19:49 +0100 skrev Marton Balint:
> > > > > Only index tables repeating previous index tables should use
> > > > > the
> > > > > same
> > > > > InstaceUID. Use the index start position when generating the
> > > > > InstanceUID to fix
> > > > > this.
> > > > >
> > > > > Signed-off-by: Marton Balint <cus at passwd.hu>
> > > > > ---
> > > > > libavformat/mxfenc.c | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> > > > > index ba8e7babfb..5b972eadaa 100644
> > > > > --- a/libavformat/mxfenc.c
> > > > > +++ b/libavformat/mxfenc.c
> > > > > @@ -1757,7 +1757,7 @@ static void
> > > > > mxf_write_index_table_segment(AVFormatContext *s)
> > > > >
> > > > > // instance id
> > > > > mxf_write_local_tag(s, 16, 0x3C0A);
> > > > > - mxf_write_uuid(pb, IndexTableSegment, 0);
> > > > > + mxf_write_uuid(pb, IndexTableSegment, mxf-
> > > > > > last_indexed_edit_unit);
> > > >
> > > > Two things: yes, it is good that this fixes the same
> > > > InstanceUID
> > > > being
> > > > reused. But more importantly, we should not be writing files
> > > > with
> > > > over
> > > > 65536 partitions!
> > >
> > > last_indexed_edit_unit is frame based not partition based, so it
> > > can
> > > overflow 65536 realtively easily, that is why I submitted patch
> > > 1.
> >
> > Right. But we could use the partition number instead.
>
> Well, we could use mxf->body_partitions_count but it is not trivial
> to see
> that it will work for all cases.
I don't see why not. But upping to 32-bit is easy anyways.
> For simple indexes, we rewrite the index
> table in the footer when writing the mxf header, opatom may follow
> another
> layout, so it just felt less error-prone to use actually the start
> offset
> of the index.
We only need to do this for frame wrapping. And yeah that can be a
separate patch.
/Tomas
More information about the ffmpeg-devel
mailing list