|
|
|
@@ -399,7 +399,7 @@ static int mxf_add_metadata_set(MXFContext *mxf, void *metadata_set) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_cryptographic_context(MXFCryptoContext *cryptocontext, ByteIOContext *pb, int tag, int size, UID uid) |
|
|
|
static int mxf_read_cryptographic_context(MXFCryptoContext *cryptocontext, ByteIOContext *pb, int tag, int size, UID uid) |
|
|
|
{ |
|
|
|
if (size != 16) |
|
|
|
return -1; |
|
|
|
@@ -408,7 +408,7 @@ static int mxf_read_metadata_cryptographic_context(MXFCryptoContext *cryptoconte |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_content_storage(MXFContext *mxf, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_content_storage(MXFContext *mxf, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch (tag) { |
|
|
|
case 0x1901: |
|
|
|
@@ -425,7 +425,7 @@ static int mxf_read_metadata_content_storage(MXFContext *mxf, ByteIOContext *pb, |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_source_clip(MXFStructuralComponent *source_clip, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_source_clip(MXFStructuralComponent *source_clip, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x0202: |
|
|
|
@@ -446,7 +446,7 @@ static int mxf_read_metadata_source_clip(MXFStructuralComponent *source_clip, By |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_material_package(MXFPackage *package, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_material_package(MXFPackage *package, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x4403: |
|
|
|
@@ -463,7 +463,7 @@ static int mxf_read_metadata_material_package(MXFPackage *package, ByteIOContext |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_track(MXFTrack *track, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_track(MXFTrack *track, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x4801: |
|
|
|
@@ -483,7 +483,7 @@ static int mxf_read_metadata_track(MXFTrack *track, ByteIOContext *pb, int tag) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_sequence(MXFSequence *sequence, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_sequence(MXFSequence *sequence, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x0202: |
|
|
|
@@ -506,7 +506,7 @@ static int mxf_read_metadata_sequence(MXFSequence *sequence, ByteIOContext *pb, |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_source_package(MXFPackage *package, ByteIOContext *pb, int tag) |
|
|
|
static int mxf_read_source_package(MXFPackage *package, ByteIOContext *pb, int tag) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x4403: |
|
|
|
@@ -531,7 +531,7 @@ static int mxf_read_metadata_source_package(MXFPackage *package, ByteIOContext * |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static void mxf_read_metadata_pixel_layout(ByteIOContext *pb, MXFDescriptor *descriptor) |
|
|
|
static void mxf_read_pixel_layout(ByteIOContext *pb, MXFDescriptor *descriptor) |
|
|
|
{ |
|
|
|
int code; |
|
|
|
|
|
|
|
@@ -554,7 +554,7 @@ static void mxf_read_metadata_pixel_layout(ByteIOContext *pb, MXFDescriptor *des |
|
|
|
} while (code != 0); /* SMPTE 377M E.2.46 */ |
|
|
|
} |
|
|
|
|
|
|
|
static int mxf_read_metadata_generic_descriptor(MXFDescriptor *descriptor, ByteIOContext *pb, int tag, int size) |
|
|
|
static int mxf_read_generic_descriptor(MXFDescriptor *descriptor, ByteIOContext *pb, int tag, int size) |
|
|
|
{ |
|
|
|
switch(tag) { |
|
|
|
case 0x3F01: |
|
|
|
@@ -600,7 +600,7 @@ static int mxf_read_metadata_generic_descriptor(MXFDescriptor *descriptor, ByteI |
|
|
|
descriptor->bits_per_sample = get_be32(pb); |
|
|
|
break; |
|
|
|
case 0x3401: |
|
|
|
mxf_read_metadata_pixel_layout(pb, descriptor); |
|
|
|
mxf_read_pixel_layout(pb, descriptor); |
|
|
|
break; |
|
|
|
case 0x8201: /* Private tag used by SONY C0023S01.mxf */ |
|
|
|
descriptor->extradata = av_malloc(size); |
|
|
|
@@ -895,21 +895,21 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) |
|
|
|
|
|
|
|
static const MXFMetadataReadTableEntry mxf_metadata_read_table[] = { |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x05,0x01,0x00 }, mxf_read_primer_pack }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x18,0x00 }, mxf_read_metadata_content_storage, 0, AnyType }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x37,0x00 }, mxf_read_metadata_source_package, sizeof(MXFPackage), SourcePackage }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x36,0x00 }, mxf_read_metadata_material_package, sizeof(MXFPackage), MaterialPackage }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x0F,0x00 }, mxf_read_metadata_sequence, sizeof(MXFSequence), Sequence }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x11,0x00 }, mxf_read_metadata_source_clip, sizeof(MXFStructuralComponent), SourceClip }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x44,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), MultipleDescriptor }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x42,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* Generic Sound */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x28,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* CDCI */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x29,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* RGBA */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* MPEG 2 Video */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x48,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* Wave */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00 }, mxf_read_metadata_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* AES3 */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 }, mxf_read_metadata_track, sizeof(MXFTrack), Track }, /* Static Track */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 }, mxf_read_metadata_track, sizeof(MXFTrack), Track }, /* Generic Track */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 }, mxf_read_metadata_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x18,0x00 }, mxf_read_content_storage, 0, AnyType }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x37,0x00 }, mxf_read_source_package, sizeof(MXFPackage), SourcePackage }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x36,0x00 }, mxf_read_material_package, sizeof(MXFPackage), MaterialPackage }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x0F,0x00 }, mxf_read_sequence, sizeof(MXFSequence), Sequence }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x11,0x00 }, mxf_read_source_clip, sizeof(MXFStructuralComponent), SourceClip }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x44,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), MultipleDescriptor }, |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x42,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* Generic Sound */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x28,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* CDCI */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x29,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* RGBA */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* MPEG 2 Video */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x48,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* Wave */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* AES3 */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 }, mxf_read_track, sizeof(MXFTrack), Track }, /* Static Track */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 }, mxf_read_track, sizeof(MXFTrack), Track }, /* Generic Track */ |
|
|
|
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 }, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext }, |
|
|
|
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, NULL, 0, AnyType }, |
|
|
|
}; |
|
|
|
|
|
|
|
|