mirror of https://git.ffmpeg.org/ffmpeg.git
libavformat/mxfenc: add missing dnxhr mxfcontainer essence ULs
Add missing dnxhr mxf container essence ULs to the mxf encoder. This fixes dnxhr mxf files being quarantined by Avid Media Composer. Signed-off-by: Jason Stevens <jay@wizardofthenet.com> Reviewed-by: Baptiste Coudurier
This commit is contained in:
parent
69f1853a28
commit
5632044939
|
@ -146,6 +146,11 @@ enum ULIndex {
|
||||||
INDEX_DNXHD_720p_8bit_HIGH,
|
INDEX_DNXHD_720p_8bit_HIGH,
|
||||||
INDEX_DNXHD_720p_8bit_MEDIUM,
|
INDEX_DNXHD_720p_8bit_MEDIUM,
|
||||||
INDEX_DNXHD_720p_8bit_LOW,
|
INDEX_DNXHD_720p_8bit_LOW,
|
||||||
|
INDEX_DNXHR_LB,
|
||||||
|
INDEX_DNXHR_SQ,
|
||||||
|
INDEX_DNXHR_HQ,
|
||||||
|
INDEX_DNXHR_HQX,
|
||||||
|
INDEX_DNXHR_444,
|
||||||
INDEX_JPEG2000,
|
INDEX_JPEG2000,
|
||||||
INDEX_H264,
|
INDEX_H264,
|
||||||
};
|
};
|
||||||
|
@ -345,6 +350,31 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
|
||||||
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x13,0x00,0x00 },
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x13,0x00,0x00 },
|
||||||
mxf_write_cdci_desc },
|
mxf_write_cdci_desc },
|
||||||
|
// DNxHR LB - CID 1274
|
||||||
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x28,0x00,0x00 },
|
||||||
|
mxf_write_cdci_desc },
|
||||||
|
// DNxHR SQ - CID 1273
|
||||||
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x27,0x00,0x00 },
|
||||||
|
mxf_write_cdci_desc },
|
||||||
|
// DNxHR HQ - CID 1272
|
||||||
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x26,0x00,0x00 },
|
||||||
|
mxf_write_cdci_desc },
|
||||||
|
// DNxHR HQX - CID 1271
|
||||||
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x25,0x00,0x00 },
|
||||||
|
mxf_write_cdci_desc },
|
||||||
|
// DNxHR 444 - CID 1270
|
||||||
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
|
||||||
|
{ 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x24,0x00,0x00 },
|
||||||
|
mxf_write_cdci_desc },
|
||||||
// JPEG2000
|
// JPEG2000
|
||||||
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 },
|
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 },
|
||||||
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x08,0x00 },
|
{ 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x08,0x00 },
|
||||||
|
@ -1959,7 +1989,11 @@ AVPacket *pkt)
|
||||||
header_cid = pkt->data + 0x28;
|
header_cid = pkt->data + 0x28;
|
||||||
cid = header_cid[0] << 24 | header_cid[1] << 16 | header_cid[2] << 8 | header_cid[3];
|
cid = header_cid[0] << 24 | header_cid[1] << 16 | header_cid[2] << 8 | header_cid[3];
|
||||||
|
|
||||||
if ((frame_size = avpriv_dnxhd_get_frame_size(cid)) < 0)
|
if ((frame_size = avpriv_dnxhd_get_frame_size(cid)) == DNXHD_VARIABLE) {
|
||||||
|
frame_size = avpriv_dnxhd_get_hr_frame_size(cid, st->codecpar->width, st->codecpar->height);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (frame_size < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if ((sc->interlaced = avpriv_dnxhd_get_interlaced(cid)) < 0)
|
if ((sc->interlaced = avpriv_dnxhd_get_interlaced(cid)) < 0)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
@ -1998,6 +2032,23 @@ AVPacket *pkt)
|
||||||
case 1253:
|
case 1253:
|
||||||
sc->index = INDEX_DNXHD_720p_8bit_LOW;
|
sc->index = INDEX_DNXHD_720p_8bit_LOW;
|
||||||
break;
|
break;
|
||||||
|
case 1274:
|
||||||
|
sc->index = INDEX_DNXHR_LB;
|
||||||
|
break;
|
||||||
|
case 1273:
|
||||||
|
sc->index = INDEX_DNXHR_SQ;
|
||||||
|
break;
|
||||||
|
case 1272:
|
||||||
|
sc->index = INDEX_DNXHR_HQ;
|
||||||
|
break;
|
||||||
|
case 1271:
|
||||||
|
sc->index = INDEX_DNXHR_HQX;
|
||||||
|
sc->component_depth = st->codecpar->bits_per_raw_sample;
|
||||||
|
break;
|
||||||
|
case 1270:
|
||||||
|
sc->index = INDEX_DNXHR_444;
|
||||||
|
sc->component_depth = st->codecpar->bits_per_raw_sample;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue