|
|
|
@@ -281,6 +281,7 @@ static const uint8_t mxf_encrypted_essence_container[] = { 0x06,0x0e,0x2b,0x |
|
|
|
static const uint8_t mxf_random_index_pack_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x11,0x01,0x00 }; |
|
|
|
static const uint8_t mxf_sony_mpeg4_extradata[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0e,0x06,0x06,0x02,0x02,0x01,0x00,0x00 }; |
|
|
|
static const uint8_t mxf_avid_project_name[] = { 0xa5,0xfb,0x7b,0x25,0xf6,0x15,0x94,0xb9,0x62,0xfc,0x37,0x17,0x49,0x2d,0x42,0xbf }; |
|
|
|
static const uint8_t mxf_jp2k_rsiz[] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x02,0x01,0x00 }; |
|
|
|
|
|
|
|
#define IS_KLV_KEY(x, y) (!memcmp(x, y, sizeof(y))) |
|
|
|
|
|
|
|
@@ -1000,6 +1001,12 @@ static int mxf_read_generic_descriptor(void *arg, AVIOContext *pb, int tag, int |
|
|
|
descriptor->extradata_size = size; |
|
|
|
avio_read(pb, descriptor->extradata, size); |
|
|
|
} |
|
|
|
if (IS_KLV_KEY(uid, mxf_jp2k_rsiz)) { |
|
|
|
uint32_t rsiz = avio_rb16(pb); |
|
|
|
if (rsiz == FF_PROFILE_JPEG2000_DCINEMA_2K || |
|
|
|
rsiz == FF_PROFILE_JPEG2000_DCINEMA_4K) |
|
|
|
descriptor->pix_fmt = AV_PIX_FMT_XYZ12; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
return 0; |
|
|
|
|