avformat/matroska: add a few more Block Addition ID Type enum values

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2023-03-12 16:23:56 -03:00
parent c73cf41f1e
commit 00fde8063a
3 changed files with 10 additions and 6 deletions

View File

@ -360,9 +360,13 @@ typedef enum {
typedef enum {
MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT = 0,
MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE = 1,
MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35 = 4,
MATROSKA_BLOCK_ADD_ID_TYPE_DVCC = 0x64766343, // MKBETAG('d','v','c','C')
MATROSKA_BLOCK_ADD_ID_TYPE_DVVC = 0x64767643, // MKBETAG('d','v','v','C')
} MatroskaBlockAddIDType;
#define MATROSKA_BLOCK_ADD_ID_OPAQUE 1
#define MATROSKA_BLOCK_ADD_ID_ITU_T_T35 4
/*

View File

@ -767,7 +767,7 @@ static EbmlSyntax matroska_segments[] = {
};
static EbmlSyntax matroska_blockmore[] = {
{ MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlockMore,additional_id), { .u = 1 } },
{ MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlockMore,additional_id), { .u = MATROSKA_BLOCK_ADD_ID_OPAQUE } },
{ MATROSKA_ID_BLOCKADDITIONAL, EBML_BIN, 0, 0, offsetof(MatroskaBlockMore,additional) },
CHILD_OF(matroska_blockadditions)
};
@ -2404,8 +2404,8 @@ static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, M
}
track->blockaddid_itu_t_t35 = 1;
break;
case MKBETAG('d','v','c','C'):
case MKBETAG('d','v','v','C'):
case MATROSKA_BLOCK_ADD_ID_TYPE_DVCC:
case MATROSKA_BLOCK_ADD_ID_TYPE_DVVC:
if ((ret = mkv_parse_dvcc_dvvc(s, st, track, &mapping->extradata)) < 0)
return ret;

View File

@ -1612,9 +1612,9 @@ static void mkv_write_dovi(AVFormatContext *s, AVIOContext *pb, AVStream *st)
+ (2 + 1 + 4) + (2 + 1 + ISOM_DVCC_DVVC_SIZE);
if (dovi->dv_profile > 7) {
type = MKBETAG('d', 'v', 'v', 'C');
type = MATROSKA_BLOCK_ADD_ID_TYPE_DVVC;
} else {
type = MKBETAG('d', 'v', 'c', 'C');
type = MATROSKA_BLOCK_ADD_ID_TYPE_DVCC;
}
ff_isom_put_dvcc_dvvc(s, buf, dovi);
@ -2657,7 +2657,7 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv,
&side_data_size);
if (side_data && side_data_size >= 8 &&
// Only the Codec-specific BlockMore (id == 1) is currently supported.
(additional_id = AV_RB64(side_data)) == 1) {
(additional_id = AV_RB64(side_data)) == MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE) {
ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKADDITIONS);
ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKMORE);
/* Until dbc50f8a our demuxer used a wrong default value