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
// write user comment refs
if (mxf->store_user_comments) {
@@ -1402,12 +1401,14 @@ static void mxf_write_package(AVFormatContext *s,
MXFPackage *package)
mxf_write_track(s, mxf->timecode_track, package);
mxf_write_sequence(s, mxf->timecode_track, package);
mxf_write_timecode_component(s, mxf->timecode_track, package);
+ mxf->track_uuid_offset++;
for (i = 0; i < s->nb_streams; i++) {
AVStream *st = s->streams[i];
mxf_write_track(s, st, package);
mxf_write_sequence(s, st, package);
mxf_write_structural_component(s, st, package);
+ mxf->track_uuid_offset++;
/Tomas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel