On Thu, Nov 30, 2017 at 9:01 AM, Tomas Härdin <tjop...@acc.umu.se> wrote:
> On Wed, 2017-11-29 at 20:18 -0800, Mark Reid wrote: > > On Wed, Nov 29, 2017 at 1:36 AM, Tomas Härdin <tjop...@acc.umu.se> > > wrote: > > > > > On 2017-11-29 05:11, Mark Reid wrote: > > > > > > > @@ -980,7 +980,7 @@ static void > > > > mxf_write_structural_component(AVFormatContext > > > > *s, AVStream *st, MXF > > > > // write uid > > > > mxf_write_local_tag(pb, 16, 0x3C0A); > > > > - mxf_write_uuid(pb, package->type == MaterialPackage ? > > > > SourceClip: > > > > SourceClip + TypeBottom, st->index); > > > > + mxf_write_uuid(pb, SourceClip, mxf->track_uuid_offset); > > > > PRINT_KEY(s, "structural component uid", pb->buf_ptr - > > > > 16); > > > > mxf_write_common_fields(s, st); > > > > @@ -1357,7 +1357,7 @@ static void > > > > mxf_write_package(AVFormatContext *s, > > > > MXFPackage *package) > > > > // write package umid > > > > mxf_write_local_tag(pb, 32, 0x4401); > > > > - mxf_write_umid(s, package->type == SourcePackage); > > > > + mxf_write_umid(s, package->instance); > > > > PRINT_KEY(s, "package umid second part", pb->buf_ptr - 16); > > > > // package name > > > > @@ -1375,10 +1375,9 @@ static void > > > > mxf_write_package(AVFormatContext *s, > > > > MXFPackage *package) > > > > // write track refs > > > > mxf_write_local_tag(pb, track_count*16 + 8, 0x4403); > > > > mxf_write_refs_count(pb, track_count); > > > > - mxf_write_uuid(pb, package->type == MaterialPackage ? Track > > > > : > > > > - Track + TypeBottom, -1); // timecode track > > > > + mxf_write_uuid(pb, Track, mxf->track_uuid_offset); // > > > > timecode track > > > > for (i = 0; i < s->nb_streams; i++) > > > > - mxf_write_uuid(pb, package->type == MaterialPackage ? > > > > Track : > > > > Track + TypeBottom, i); > > > > + mxf_write_uuid(pb, Track, mxf->track_uuid_offset + i + > > > > 1); > > > > > > > > > > Do these refer to tracks that are about to be written? Seems so as > > > best I > > > can tell, so I guess it works. I'd be happier if the referencing > > > was done > > > more explicitly rather than implicitly > > > > > > yes they refer to the tracks about to be written. Those uuids need to > > match > > the uuid instance tag (0x3C0A) on a track written in mxf_write_track. > > then > > the uuid ref on the track needs to match the one on the sequence, and > > then > > the one the sequence needs to match the one on the component. > > > > would you rather the instance id be a argument to each of the write > > functions? for example: > > mxf_write_package(AVFormatContext *s, MXFPackage *package, int > > track_uuid_offset) > > mxf_write_track(AVFormatContext *s, AVStream *st, MXFPackage > > *package, int > > instance_id) > > would that be more explicit? > > I'm not quite sure tbh. It's been a few years since I worked with MXF, > so it's harder to say. Maybe a comment would be enough > > okay I'll submit a new version with some more comments > /Tomas > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel