1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

hevc_ps: expose log2_diff_max_min_transform_block_size

This commit is contained in:
Lynne 2022-12-07 04:30:46 +01:00
parent 6eaca2abd8
commit abdd87d44e
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
2 changed files with 11 additions and 10 deletions

View File

@ -856,9 +856,8 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
{ {
HEVCWindow *ow; HEVCWindow *ow;
int ret = 0; int ret = 0;
int log2_diff_max_min_transform_block_size;
int bit_depth_chroma, start, vui_present, sublayer_ordering_info, num_comps; int bit_depth_chroma, start, vui_present, sublayer_ordering_info, num_comps;
int i; int i, j;
// Coded parameters // Coded parameters
@ -993,12 +992,12 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
} }
} }
sps->log2_min_cb_size = get_ue_golomb_long(gb) + 3; sps->log2_min_cb_size = get_ue_golomb_long(gb) + 3;
sps->log2_diff_max_min_coding_block_size = get_ue_golomb_long(gb); sps->log2_diff_max_min_coding_block_size = get_ue_golomb_long(gb);
sps->log2_min_tb_size = get_ue_golomb_long(gb) + 2; sps->log2_min_tb_size = get_ue_golomb_long(gb) + 2;
log2_diff_max_min_transform_block_size = get_ue_golomb_long(gb); sps->log2_diff_max_min_transform_block_size = get_ue_golomb_long(gb);
sps->log2_max_trafo_size = log2_diff_max_min_transform_block_size + sps->log2_max_trafo_size = sps->log2_diff_max_min_transform_block_size +
sps->log2_min_tb_size; sps->log2_min_tb_size;
if (sps->log2_min_cb_size < 3 || sps->log2_min_cb_size > 30) { if (sps->log2_min_cb_size < 3 || sps->log2_min_cb_size > 30) {
av_log(avctx, AV_LOG_ERROR, "Invalid value %d for log2_min_cb_size", sps->log2_min_cb_size); av_log(avctx, AV_LOG_ERROR, "Invalid value %d for log2_min_cb_size", sps->log2_min_cb_size);
@ -1015,8 +1014,9 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
if (log2_diff_max_min_transform_block_size < 0 || log2_diff_max_min_transform_block_size > 30) { if (sps->log2_diff_max_min_transform_block_size > 30) {
av_log(avctx, AV_LOG_ERROR, "Invalid value %d for log2_diff_max_min_transform_block_size", log2_diff_max_min_transform_block_size); av_log(avctx, AV_LOG_ERROR, "Invalid value %d for log2_diff_max_min_transform_block_size",
sps->log2_diff_max_min_transform_block_size);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }

View File

@ -237,6 +237,7 @@ typedef struct HEVCSPS {
unsigned int log2_max_trafo_size; unsigned int log2_max_trafo_size;
unsigned int log2_ctb_size; unsigned int log2_ctb_size;
unsigned int log2_min_pu_size; unsigned int log2_min_pu_size;
unsigned int log2_diff_max_min_transform_block_size;
int max_transform_hierarchy_depth_inter; int max_transform_hierarchy_depth_inter;
int max_transform_hierarchy_depth_intra; int max_transform_hierarchy_depth_intra;