Browse Source

correctly set multi track operational pattern

Originally committed as revision 17116 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Baptiste Coudurier 17 years ago
parent
commit
216b6631fb
1 changed files with 15 additions and 2 deletions
  1. +15
    -2
      libavformat/mxfenc.c

+ 15
- 2
libavformat/mxfenc.c View File

@@ -381,8 +381,14 @@ static void mxf_write_preface(AVFormatContext *s)
mxf_write_local_tag(pb, 16, 0x3B03);
mxf_write_uuid(pb, ContentStorage, 0);

// operational pattern
mxf_write_local_tag(pb, 16, 0x3B09);
put_buffer(pb, op1a_ul, 16);
if (s->nb_streams > 1) {
put_buffer(pb, op1a_ul, 14);
put_be16(pb, 0x0900); // multi track
} else {
put_buffer(pb, op1a_ul, 16);
}

// write essence_container_refs
mxf_write_local_tag(pb, 8 + 16 * mxf->essence_container_count, 0x3B0A);
@@ -1000,7 +1006,14 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid,
put_be64(pb, 0); // bodyOffset

put_be32(pb, bodysid); // bodySID
put_buffer(pb, op1a_ul, 16); // operational pattern

// operational pattern
if (s->nb_streams > 1) {
put_buffer(pb, op1a_ul, 14);
put_be16(pb, 0x0900); // multi track
} else {
put_buffer(pb, op1a_ul, 16);
}

// essence container
mxf_write_essence_container_refs(s);


Loading…
Cancel
Save