cbs: Add an explicit type for coded bitstream unit types
Also fix conversion specifiers used for the unit type.
This commit is contained in:
parent
2651352988
commit
1d12a545ce
@ -137,10 +137,10 @@ static int cbs_read_fragment_content(CodedBitstreamContext *ctx,
|
|||||||
if (err == AVERROR(ENOSYS)) {
|
if (err == AVERROR(ENOSYS)) {
|
||||||
av_log(ctx->log_ctx, AV_LOG_WARNING,
|
av_log(ctx->log_ctx, AV_LOG_WARNING,
|
||||||
"Decomposition unimplemented for unit %d "
|
"Decomposition unimplemented for unit %d "
|
||||||
"(type %d).\n", i, frag->units[i].type);
|
"(type %"PRIu32").\n", i, frag->units[i].type);
|
||||||
} else if (err < 0) {
|
} else if (err < 0) {
|
||||||
av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
|
||||||
"(type %d).\n", i, frag->units[i].type);
|
"(type %"PRIu32").\n", i, frag->units[i].type);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -225,7 +225,7 @@ int ff_cbs_write_fragment_data(CodedBitstreamContext *ctx,
|
|||||||
err = ctx->codec->write_unit(ctx, &frag->units[i]);
|
err = ctx->codec->write_unit(ctx, &frag->units[i]);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to write unit %d "
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to write unit %d "
|
||||||
"(type %d).\n", i, frag->units[i].type);
|
"(type %"PRIu32").\n", i, frag->units[i].type);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -421,7 +421,8 @@ static int cbs_insert_unit(CodedBitstreamContext *ctx,
|
|||||||
|
|
||||||
int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamFragment *frag,
|
CodedBitstreamFragment *frag,
|
||||||
int position, uint32_t type,
|
int position,
|
||||||
|
CodedBitstreamUnitType type,
|
||||||
void *content)
|
void *content)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
@ -443,7 +444,8 @@ int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
|||||||
|
|
||||||
int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
|
int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamFragment *frag,
|
CodedBitstreamFragment *frag,
|
||||||
int position, uint32_t type,
|
int position,
|
||||||
|
CodedBitstreamUnitType type,
|
||||||
uint8_t *data, size_t data_size)
|
uint8_t *data, size_t data_size)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
@ -27,6 +27,15 @@
|
|||||||
|
|
||||||
struct CodedBitstreamType;
|
struct CodedBitstreamType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The codec-specific type of a bitstream unit.
|
||||||
|
*
|
||||||
|
* H.264 / AVC: nal_unit_type
|
||||||
|
* H.265 / HEVC: nal_unit_type
|
||||||
|
* MPEG-2: start code value (without prefix)
|
||||||
|
*/
|
||||||
|
typedef uint32_t CodedBitstreamUnitType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Coded bitstream unit structure.
|
* Coded bitstream unit structure.
|
||||||
*
|
*
|
||||||
@ -40,7 +49,7 @@ typedef struct CodedBitstreamUnit {
|
|||||||
/**
|
/**
|
||||||
* Codec-specific type of this unit.
|
* Codec-specific type of this unit.
|
||||||
*/
|
*/
|
||||||
uint32_t type;
|
CodedBitstreamUnitType type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pointer to the bitstream form of this unit.
|
* Pointer to the bitstream form of this unit.
|
||||||
@ -149,7 +158,7 @@ typedef struct CodedBitstreamContext {
|
|||||||
* Types not in this list will be available in bitstream form only.
|
* Types not in this list will be available in bitstream form only.
|
||||||
* If NULL, all supported types will be decomposed.
|
* If NULL, all supported types will be decomposed.
|
||||||
*/
|
*/
|
||||||
uint32_t *decompose_unit_types;
|
CodedBitstreamUnitType *decompose_unit_types;
|
||||||
/**
|
/**
|
||||||
* Length of the decompose_unit_types array.
|
* Length of the decompose_unit_types array.
|
||||||
*/
|
*/
|
||||||
@ -250,7 +259,8 @@ void ff_cbs_fragment_uninit(CodedBitstreamContext *ctx,
|
|||||||
*/
|
*/
|
||||||
int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamFragment *frag,
|
CodedBitstreamFragment *frag,
|
||||||
int position, uint32_t type,
|
int position,
|
||||||
|
CodedBitstreamUnitType type,
|
||||||
void *content);
|
void *content);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -260,7 +270,8 @@ int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
|
|||||||
*/
|
*/
|
||||||
int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
|
int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamFragment *frag,
|
CodedBitstreamFragment *frag,
|
||||||
int position, uint32_t type,
|
int position,
|
||||||
|
CodedBitstreamUnitType type,
|
||||||
uint8_t *data, size_t data_size);
|
uint8_t *data, size_t data_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1213,7 +1213,7 @@ static int cbs_h265_write_nal_unit(CodedBitstreamContext *ctx,
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
av_log(ctx->log_ctx, AV_LOG_ERROR, "Write unimplemented for "
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Write unimplemented for "
|
||||||
"NAL unit type %d.\n", unit->type);
|
"NAL unit type %"PRIu32".\n", unit->type);
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ static int cbs_mpeg2_read_unit(CodedBitstreamContext *ctx,
|
|||||||
START(0xb8, MPEG2RawGroupOfPicturesHeader, group_of_pictures_header);
|
START(0xb8, MPEG2RawGroupOfPicturesHeader, group_of_pictures_header);
|
||||||
#undef START
|
#undef START
|
||||||
default:
|
default:
|
||||||
av_log(ctx->log_ctx, AV_LOG_ERROR, "Unknown start code %02x.\n",
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Unknown start code %02"PRIx32".\n",
|
||||||
unit->type);
|
unit->type);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
@ -248,7 +248,7 @@ static int cbs_mpeg2_write_header(CodedBitstreamContext *ctx,
|
|||||||
#undef START
|
#undef START
|
||||||
default:
|
default:
|
||||||
av_log(ctx->log_ctx, AV_LOG_ERROR, "Write unimplemented for start "
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Write unimplemented for start "
|
||||||
"code %02x.\n", unit->type);
|
"code %02"PRIx32".\n", unit->type);
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user