avformat/mxfdec: export operational pattern UL as file metadata
Can be useful for API users as ffmpeg/libavformat can't properly support some operational patterns. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
c5a825dc75
commit
6ed7df5b20
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user