Can be useful for API users as ffmpeg/libavformat can't properly support some operational patterns. Signed-off-by: Marton Balint <cus@passwd.hu>tags/n4.2
| @@ -654,6 +654,7 @@ static int mxf_read_primer_pack(void *arg, AVIOContext *pb, int tag, int size, U | |||||
| static int mxf_read_partition_pack(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) | static int mxf_read_partition_pack(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) | ||||
| { | { | ||||
| MXFContext *mxf = arg; | MXFContext *mxf = arg; | ||||
| AVFormatContext *s = mxf->fc; | |||||
| MXFPartition *partition, *tmp_part; | MXFPartition *partition, *tmp_part; | ||||
| UID op; | UID op; | ||||
| uint64_t footer_partition; | uint64_t footer_partition; | ||||
| @@ -718,6 +719,12 @@ static int mxf_read_partition_pack(void *arg, AVIOContext *pb, int tag, int size | |||||
| } | } | ||||
| nb_essence_containers = avio_rb32(pb); | nb_essence_containers = avio_rb32(pb); | ||||
| if (partition->type == Header) { | |||||
| char str[36]; | |||||
| snprintf(str, sizeof(str), "%08x.%08x.%08x.%08x", AV_RB32(&op[0]), AV_RB32(&op[4]), AV_RB32(&op[8]), AV_RB32(&op[12])); | |||||
| av_dict_set(&s->metadata, "operational_pattern", str, 0); | |||||
| } | |||||
| if (partition->this_partition && | if (partition->this_partition && | ||||
| partition->previous_partition == partition->this_partition) { | partition->previous_partition == partition->this_partition) { | ||||
| av_log(mxf->fc, AV_LOG_ERROR, | av_log(mxf->fc, AV_LOG_ERROR, | ||||
| @@ -96,6 +96,7 @@ TAG:file_package_umid=0x060A2B340101010501010D1313000000AE86B2009131058000000800 | |||||
| format_name=mxf | format_name=mxf | ||||
| duration=0.178375 | duration=0.178375 | ||||
| bit_rate=56419744 | bit_rate=56419744 | ||||
| TAG:operational_pattern=060e2b34.04010101.0d010201.01010900 | |||||
| TAG:uid=0086b200-9131-0580-0000-080046a54011 | TAG:uid=0086b200-9131-0580-0000-080046a54011 | ||||
| TAG:generation_uid=b486b200-9131-0580-0000-080046a54011 | TAG:generation_uid=b486b200-9131-0580-0000-080046a54011 | ||||
| TAG:company_name=SONY | TAG:company_name=SONY | ||||
| @@ -167,6 +167,7 @@ TAG:timecode=01:00:00:00 | |||||
| format_name=mxf | format_name=mxf | ||||
| duration=0.250250 | duration=0.250250 | ||||
| bit_rate=25340195 | bit_rate=25340195 | ||||
| TAG:operational_pattern=060e2b34.04010102.0d010201.10030000 | |||||
| TAG:project_name=UHD | TAG:project_name=UHD | ||||
| TAG:uid=784c8132-ae36-ed4d-b0ff-2edf1f3f2d92 | TAG:uid=784c8132-ae36-ed4d-b0ff-2edf1f3f2d92 | ||||
| TAG:generation_uid=b6bcfcab-70ff-7331-c47c-478869de11d2 | TAG:generation_uid=b6bcfcab-70ff-7331-c47c-478869de11d2 | ||||
| @@ -137,6 +137,7 @@ TAG:file_package_umid=0x060A2B340101010501010D4313000000F2E2FCE98722F14F947F08DE | |||||
| format_name=mxf | format_name=mxf | ||||
| duration=1.000000 | duration=1.000000 | ||||
| bit_rate=30679040 | bit_rate=30679040 | ||||
| TAG:operational_pattern=060e2b34.04010101.0d010201.01010900 | |||||
| TAG:uid=a741d0c7-244a-bc4a-bd36-3323d04f8954 | TAG:uid=a741d0c7-244a-bc4a-bd36-3323d04f8954 | ||||
| TAG:generation_uid=c1d7a0ee-89d6-754d-bd52-cdf42b53de9f | TAG:generation_uid=c1d7a0ee-89d6-754d-bd52-cdf42b53de9f | ||||
| TAG:company_name=AVID | TAG:company_name=AVID | ||||