summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_ps.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-11-01 16:14:39 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-11-01 17:13:00 +0100
commit5eb1704d5f5a85ff5b532887d559f3cf2822d8fc (patch)
tree9282c0edf8e3dd4b4dd014f157044c34dc6527cb /libavcodec/hevc_ps.c
parentc617c669e9fce59905915c3ba1053f535add6a06 (diff)
parent064698d381e1e7790f21b0199a8930ea04e2e942 (diff)
Merge commit '064698d381e1e7790f21b0199a8930ea04e2e942'
* commit '064698d381e1e7790f21b0199a8930ea04e2e942': Add HEVC decoder Conflicts: Changelog libavcodec/Makefile libavcodec/allcodecs.c libavcodec/hevc.c libavcodec/hevc.h libavcodec/hevc_cabac.c libavcodec/hevc_filter.c libavcodec/hevc_mvs.c libavcodec/hevc_parser.c libavcodec/hevc_ps.c libavcodec/hevc_refs.c libavcodec/hevc_sei.c libavcodec/hevcdsp.c libavcodec/hevcdsp_template.c libavcodec/hevcpred.c libavcodec/hevcpred_template.c libavcodec/version.h cosmetics from hevc.h & hevc_ps.c mostly merged, other files left as they where in ffmpeg. Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hevc_ps.c')
-rw-r--r--libavcodec/hevc_ps.c230
1 files changed, 121 insertions, 109 deletions
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index 8fe6c8acbe..50de015dbc 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -1,5 +1,5 @@
/*
- * HEVC Parameter Set Decoding
+ * HEVC Parameter Set decoding
*
* Copyright (C) 2012 - 2103 Guillaume Martres
* Copyright (C) 2012 - 2103 Mickael Raulet
@@ -23,8 +23,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include "golomb.h"
#include "libavutil/imgutils.h"
+
+#include "golomb.h"
#include "hevc.h"
static const uint8_t default_scaling_list_intra[] = {
@@ -35,7 +36,7 @@ static const uint8_t default_scaling_list_intra[] = {
17, 17, 20, 24, 30, 35, 41, 47,
18, 19, 22, 27, 35, 44, 54, 65,
21, 22, 25, 31, 41, 54, 70, 88,
- 24, 25, 29,36, 47, 65, 88, 115
+ 24, 25, 29, 36, 47, 65, 88, 115
};
static const uint8_t default_scaling_list_inter[] = {
@@ -50,8 +51,8 @@ static const uint8_t default_scaling_list_inter[] = {
};
static const AVRational vui_sar[] = {
- { 0, 1 },
- { 1, 1 },
+ { 0, 1 },
+ { 1, 1 },
{ 12, 11 },
{ 10, 11 },
{ 16, 11 },
@@ -64,9 +65,9 @@ static const AVRational vui_sar[] = {
{ 15, 11 },
{ 64, 33 },
{ 160, 99 },
- { 4, 3 },
- { 3, 2 },
- { 2, 1 },
+ { 4, 3 },
+ { 3, 2 },
+ { 2, 1 },
};
int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
@@ -83,7 +84,7 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
GetBitContext *gb = &lc->gb;
if (rps != sps->st_rps && sps->nb_st_rps)
- rps_predict = get_bits1(gb);
+ rps_predict = get_bits1(gb);
if (rps_predict) {
const ShortTermRPS *rps_ridx;
@@ -94,9 +95,9 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
if (is_slice_header) {
int delta_idx = get_ue_golomb_long(gb) + 1;
if (delta_idx > sps->nb_st_rps) {
- av_log(s->avctx, AV_LOG_ERROR, "Invalid value of delta_idx "
- "in slice header RPS: %d > %d.\n", delta_idx,
- sps->nb_st_rps);
+ av_log(s->avctx, AV_LOG_ERROR,
+ "Invalid value of delta_idx in slice header RPS: %d > %d.\n",
+ delta_idx, sps->nb_st_rps);
return AVERROR_INVALIDDATA;
}
rps_ridx = &sps->st_rps[sps->nb_st_rps - delta_idx];
@@ -134,13 +135,13 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
for (i = 1; i < rps->num_delta_pocs; i++) {
delta_poc = rps->delta_poc[i];
used = rps->used[i];
- for (k = i-1 ; k >= 0; k--) {
+ for (k = i - 1; k >= 0; k--) {
tmp = rps->delta_poc[k];
- if (delta_poc < tmp ) {
- rps->delta_poc[k+1] = tmp;
- rps->used[k+1] = rps->used[k];
- rps->delta_poc[k] = delta_poc;
- rps->used[k] = used;
+ if (delta_poc < tmp) {
+ rps->delta_poc[k + 1] = tmp;
+ rps->used[k + 1] = rps->used[k];
+ rps->delta_poc[k] = delta_poc;
+ rps->used[k] = used;
}
}
}
@@ -149,13 +150,13 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
int used;
k = rps->num_negative_pics - 1;
// flip the negative values to largest first
- for (i = 0; i < rps->num_negative_pics>>1; i++) {
- delta_poc = rps->delta_poc[i];
- used = rps->used[i];
- rps->delta_poc[i] = rps->delta_poc[k];
- rps->used[i] = rps->used[k];
- rps->delta_poc[k] = delta_poc;
- rps->used[k] = used;
+ for (i = 0; i < rps->num_negative_pics >> 1; i++) {
+ delta_poc = rps->delta_poc[i];
+ used = rps->used[i];
+ rps->delta_poc[i] = rps->delta_poc[k];
+ rps->used[i] = rps->used[k];
+ rps->delta_poc[k] = delta_poc;
+ rps->used[k] = used;
k--;
}
}
@@ -177,29 +178,30 @@ int ff_hevc_decode_short_term_rps(HEVCContext *s, ShortTermRPS *rps,
delta_poc = get_ue_golomb_long(gb) + 1;
prev -= delta_poc;
rps->delta_poc[i] = prev;
- rps->used[i] = get_bits1(gb);
+ rps->used[i] = get_bits1(gb);
}
prev = 0;
for (i = 0; i < nb_positive_pics; i++) {
delta_poc = get_ue_golomb_long(gb) + 1;
prev += delta_poc;
rps->delta_poc[rps->num_negative_pics + i] = prev;
- rps->used[rps->num_negative_pics + i] = get_bits1(gb);
+ rps->used[rps->num_negative_pics + i] = get_bits1(gb);
}
}
}
return 0;
}
-static int decode_profile_tier_level(HEVCContext *s, PTL *ptl, int max_num_sub_layers)
+static int decode_profile_tier_level(HEVCContext *s, PTL *ptl,
+ int max_num_sub_layers)
{
+ int i, j;
HEVCLocalContext *lc = s->HEVClc;
GetBitContext *gb = &lc->gb;
- int i, j;
ptl->general_profile_space = get_bits(gb, 2);
- ptl->general_tier_flag = get_bits1(gb);
- ptl->general_profile_idc = get_bits(gb, 5);
+ ptl->general_tier_flag = get_bits1(gb);
+ ptl->general_profile_idc = get_bits(gb, 5);
if (ptl->general_profile_idc == 1)
av_log(s->avctx, AV_LOG_DEBUG, "Main profile bitstream\n");
else if (ptl->general_profile_idc == 2)
@@ -209,10 +211,10 @@ static int decode_profile_tier_level(HEVCContext *s, PTL *ptl, int max_num_sub_l
for (i = 0; i < 32; i++)
ptl->general_profile_compatibility_flag[i] = get_bits1(gb);
- skip_bits1(gb);// general_progressive_source_flag
- skip_bits1(gb);// general_interlaced_source_flag
- skip_bits1(gb);// general_non_packed_constraint_flag
- skip_bits1(gb);// general_frame_only_constraint_flag
+ skip_bits1(gb); // general_progressive_source_flag
+ skip_bits1(gb); // general_interlaced_source_flag
+ skip_bits1(gb); // general_non_packed_constraint_flag
+ skip_bits1(gb); // general_frame_only_constraint_flag
if (get_bits(gb, 16) != 0) // XXX_reserved_zero_44bits[0..15]
return -1;
if (get_bits(gb, 16) != 0) // XXX_reserved_zero_44bits[16..31]
@@ -223,7 +225,7 @@ static int decode_profile_tier_level(HEVCContext *s, PTL *ptl, int max_num_sub_l
ptl->general_level_idc = get_bits(gb, 8);
for (i = 0; i < max_num_sub_layers - 1; i++) {
ptl->sub_layer_profile_present_flag[i] = get_bits1(gb);
- ptl->sub_layer_level_present_flag[i] = get_bits1(gb);
+ ptl->sub_layer_level_present_flag[i] = get_bits1(gb);
}
if (max_num_sub_layers - 1 > 0)
for (i = max_num_sub_layers - 1; i < 8; i++)
@@ -231,14 +233,14 @@ static int decode_profile_tier_level(HEVCContext *s, PTL *ptl, int max_num_sub_l
for (i = 0; i < max_num_sub_layers - 1; i++) {
if (ptl->sub_layer_profile_present_flag[i]) {
ptl->sub_layer_profile_space[i] = get_bits(gb, 2);
- ptl->sub_layer_tier_flag[i] = get_bits(gb, 1);
- ptl->sub_layer_profile_idc[i] = get_bits(gb, 5);
+ ptl->sub_layer_tier_flag[i] = get_bits(gb, 1);
+ ptl->sub_layer_profile_idc[i] = get_bits(gb, 5);
for (j = 0; j < 32; j++)
ptl->sub_layer_profile_compatibility_flags[i][j] = get_bits1(gb);
- skip_bits1(gb);// sub_layer_progressive_source_flag
- skip_bits1(gb);// sub_layer_interlaced_source_flag
- skip_bits1(gb);// sub_layer_non_packed_constraint_flag
- skip_bits1(gb);// sub_layer_frame_only_constraint_flag
+ skip_bits1(gb); // sub_layer_progressive_source_flag
+ skip_bits1(gb); // sub_layer_interlaced_source_flag
+ skip_bits1(gb); // sub_layer_non_packed_constraint_flag
+ skip_bits1(gb); // sub_layer_frame_only_constraint_flag
if (get_bits(gb, 16) != 0) // sub_layer_reserved_zero_44bits[0..15]
return -1;
@@ -253,7 +255,8 @@ static int decode_profile_tier_level(HEVCContext *s, PTL *ptl, int max_num_sub_l
return 0;
}
-static void decode_sublayer_hrd(HEVCContext *s, int nb_cpb, int subpic_params_present)
+static void decode_sublayer_hrd(HEVCContext *s, int nb_cpb,
+ int subpic_params_present)
{
GetBitContext *gb = &s->HEVClc->gb;
int i;
@@ -331,7 +334,7 @@ int ff_hevc_decode_nal_vps(HEVCContext *s)
int i,j;
GetBitContext *gb = &s->HEVClc->gb;
int vps_id = 0;
- VPS *vps;
+ HEVCVPS *vps;
av_log(s->avctx, AV_LOG_DEBUG, "Decoding VPS\n");
@@ -425,7 +428,7 @@ err:
static void decode_vui(HEVCContext *s, HEVCSPS *sps)
{
- VUI *vui = &sps->vui;
+ VUI *vui = &sps->vui;
GetBitContext *gb = &s->HEVClc->gb;
int sar_present;
@@ -440,8 +443,8 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps)
vui->sar.num = get_bits(gb, 16);
vui->sar.den = get_bits(gb, 16);
} else
- av_log(s->avctx, AV_LOG_WARNING, "Unknown SAR index: %u.\n",
- sar_idx);
+ av_log(s->avctx, AV_LOG_WARNING,
+ "Unknown SAR index: %u.\n", sar_idx);
}
vui->overscan_info_present_flag = get_bits1(gb);
@@ -478,7 +481,7 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps)
vui->def_disp_win.top_offset = get_ue_golomb_long(gb) * 2;
vui->def_disp_win.bottom_offset = get_ue_golomb_long(gb) * 2;
- if (s->strict_def_disp_win &&
+ if (s->apply_defdispwin &&
s->avctx->flags2 & CODEC_FLAG2_IGNORE_CROP) {
av_log(s->avctx, AV_LOG_DEBUG,
"discarding vui default display window, "
@@ -551,14 +554,15 @@ static int scaling_list_data(HEVCContext *s, ScalingList *sl)
GetBitContext *gb = &s->HEVClc->gb;
uint8_t scaling_list_pred_mode_flag[4][6];
int32_t scaling_list_dc_coef[2][6];
-
int size_id, matrix_id, i, pos, delta;
+
for (size_id = 0; size_id < 4; size_id++)
- for (matrix_id = 0; matrix_id < ((size_id == 3) ? 2 : 6); matrix_id++) {
+ for (matrix_id = 0; matrix_id < (size_id == 3 ? 2 : 6); matrix_id++) {
scaling_list_pred_mode_flag[size_id][matrix_id] = get_bits1(gb);
if (!scaling_list_pred_mode_flag[size_id][matrix_id]) {
delta = get_ue_golomb_long(gb);
- // Only need to handle non-zero delta. Zero means default, which should already be in the arrays.
+ /* Only need to handle non-zero delta. Zero means default,
+ * which should already be in the arrays. */
if (delta) {
// Copy from previous array.
if (matrix_id - delta < 0) {
@@ -574,12 +578,11 @@ static int scaling_list_data(HEVCContext *s, ScalingList *sl)
sl->sl_dc[size_id - 2][matrix_id] = sl->sl_dc[size_id - 2][matrix_id - delta];
}
} else {
- int next_coef;
- int coef_num;
+ int next_coef, coef_num;
int32_t scaling_list_delta_coef;
next_coef = 8;
- coef_num = FFMIN(64, (1 << (4 + (size_id << 1))));
+ coef_num = FFMIN(64, 1 << (4 + (size_id << 1)));
if (size_id > 1) {
scaling_list_dc_coef[size_id - 2][matrix_id] = get_se_golomb(gb) + 8;
next_coef = scaling_list_dc_coef[size_id - 2][matrix_id];
@@ -587,12 +590,14 @@ static int scaling_list_data(HEVCContext *s, ScalingList *sl)
}
for (i = 0; i < coef_num; i++) {
if (size_id == 0)
- pos = 4 * ff_hevc_diag_scan4x4_y[i] + ff_hevc_diag_scan4x4_x[i];
+ pos = 4 * ff_hevc_diag_scan4x4_y[i] +
+ ff_hevc_diag_scan4x4_x[i];
else
- pos = 8 * ff_hevc_diag_scan8x8_y[i] + ff_hevc_diag_scan8x8_x[i];
+ pos = 8 * ff_hevc_diag_scan8x8_y[i] +
+ ff_hevc_diag_scan8x8_x[i];
scaling_list_delta_coef = get_se_golomb(gb);
- next_coef = (next_coef + scaling_list_delta_coef + 256 ) % 256;
+ next_coef = (next_coef + scaling_list_delta_coef + 256) % 256;
sl->sl[size_id][matrix_id][pos] = next_coef;
}
}
@@ -653,7 +658,7 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
sps->chroma_format_idc = get_ue_golomb_long(gb);
if (sps->chroma_format_idc != 1) {
avpriv_report_missing_feature(s->avctx, "chroma_format_idc != 1\n");
- ret = AVERROR_INVALIDDATA;
+ ret = AVERROR_PATCHWELCOME;
goto err;
}
@@ -694,7 +699,8 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
bit_depth_chroma = get_ue_golomb_long(gb) + 8;
if (bit_depth_chroma != sps->bit_depth) {
av_log(s->avctx, AV_LOG_ERROR,
- "Luma bit depth (%d) is different from chroma bit depth (%d), this is unsupported.\n",
+ "Luma bit depth (%d) is different from chroma bit depth (%d), "
+ "this is unsupported.\n",
sps->bit_depth, bit_depth_chroma);
ret = AVERROR_INVALIDDATA;
goto err;
@@ -712,7 +718,8 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
goto err;
}
} else {
- av_log(s->avctx, AV_LOG_ERROR, "non-4:2:0 support is currently unspecified.\n");
+ av_log(s->avctx, AV_LOG_ERROR,
+ "non-4:2:0 support is currently unspecified.\n");
return AVERROR_PATCHWELCOME;
}
@@ -757,18 +764,19 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
}
if (!sublayer_ordering_info) {
- for (i = 0; i < start; i++){
+ for (i = 0; i < start; i++) {
sps->temporal_layer[i].max_dec_pic_buffering = sps->temporal_layer[start].max_dec_pic_buffering;
sps->temporal_layer[i].num_reorder_pics = sps->temporal_layer[start].num_reorder_pics;
sps->temporal_layer[i].max_latency_increase = sps->temporal_layer[start].max_latency_increase;
}
}
- 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_min_tb_size = get_ue_golomb_long(gb) + 2;
- 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_min_tb_size;
+ 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_min_tb_size = get_ue_golomb_long(gb) + 2;
+ 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_min_tb_size;
if (sps->log2_min_tb_size >= sps->log2_min_cb_size) {
av_log(s->avctx, AV_LOG_ERROR, "Invalid value for log2_min_tb_size");
@@ -840,7 +848,7 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
decode_vui(s, sps);
skip_bits1(gb); // sps_extension_flag
- if (s->strict_def_disp_win) {
+ if (s->apply_defdispwin) {
sps->output_window.left_offset += sps->vui.def_disp_win.left_offset;
sps->output_window.right_offset += sps->vui.def_disp_win.right_offset;
sps->output_window.top_offset += sps->vui.def_disp_win.top_offset;
@@ -864,32 +872,33 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
ret = AVERROR_INVALIDDATA;
goto err;
}
- av_log(s->avctx, AV_LOG_WARNING, "Displaying the whole video surface.\n");
+ av_log(s->avctx, AV_LOG_WARNING,
+ "Displaying the whole video surface.\n");
sps->pic_conf_win.left_offset =
sps->pic_conf_win.right_offset =
sps->pic_conf_win.top_offset =
sps->pic_conf_win.bottom_offset = 0;
- sps->output_width = sps->width;
- sps->output_height = sps->height;
+ sps->output_width = sps->width;
+ sps->output_height = sps->height;
}
// Inferred parameters
- sps->log2_ctb_size = sps->log2_min_cb_size
- + sps->log2_diff_max_min_coding_block_size;
- sps->log2_min_pu_size = sps->log2_min_cb_size - 1;
+ sps->log2_ctb_size = sps->log2_min_cb_size +
+ sps->log2_diff_max_min_coding_block_size;
+ sps->log2_min_pu_size = sps->log2_min_cb_size - 1;
- sps->ctb_width = (sps->width + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
- sps->ctb_height = (sps->height + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
- sps->ctb_size = sps->ctb_width * sps->ctb_height;
+ sps->ctb_width = (sps->width + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
+ sps->ctb_height = (sps->height + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
+ sps->ctb_size = sps->ctb_width * sps->ctb_height;
- sps->min_cb_width = sps->width >> sps->log2_min_cb_size;
- sps->min_cb_height = sps->height >> sps->log2_min_cb_size;
- sps->min_tb_width = sps->width >> sps->log2_min_tb_size;
- sps->min_tb_height = sps->height >> sps->log2_min_tb_size;
- sps->min_pu_width = sps->width >> sps->log2_min_pu_size;
- sps->min_pu_height = sps->height >> sps->log2_min_pu_size;
+ sps->min_cb_width = sps->width >> sps->log2_min_cb_size;
+ sps->min_cb_height = sps->height >> sps->log2_min_cb_size;
+ sps->min_tb_width = sps->width >> sps->log2_min_tb_size;
+ sps->min_tb_height = sps->height >> sps->log2_min_tb_size;
+ sps->min_pu_width = sps->width >> sps->log2_min_pu_size;
+ sps->min_pu_height = sps->height >> sps->log2_min_pu_size;
- sps->qp_bd_offset = 6 * (sps->bit_depth - 8);
+ sps->qp_bd_offset = 6 * (sps->bit_depth - 8);
if (sps->width & ((1 << sps->log2_min_cb_size) - 1) ||
sps->height & ((1 << sps->log2_min_cb_size) - 1)) {
@@ -912,13 +921,15 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
goto err;
}
if (sps->log2_max_trafo_size > FFMIN(sps->log2_ctb_size, 5)) {
- av_log(s->avctx, AV_LOG_ERROR, "max transform block size out of range: %d\n",
+ av_log(s->avctx, AV_LOG_ERROR,
+ "max transform block size out of range: %d\n",
sps->log2_max_trafo_size);
goto err;
}
if (s->avctx->debug & FF_DEBUG_BITSTREAM) {
- av_log(s->avctx, AV_LOG_DEBUG, "Parsed SPS: id %d; coded wxh: %dx%d; "
+ av_log(s->avctx, AV_LOG_DEBUG,
+ "Parsed SPS: id %d; coded wxh: %dx%d; "
"cropped wxh: %dx%d; pix_fmt: %s.\n",
sps_id, sps->width, sps->height,
sps->output_width, sps->output_height,
@@ -941,8 +952,8 @@ int ff_hevc_decode_nal_sps(HEVCContext *s)
}
return 0;
-err:
+err:
av_buffer_unref(&sps_buf);
return ret;
}
@@ -982,7 +993,8 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
if (!pps)
return AVERROR(ENOMEM);
- pps_buf = av_buffer_create((uint8_t*)pps, sizeof(*pps), hevc_pps_free, NULL, 0);
+ pps_buf = av_buffer_create((uint8_t *)pps, sizeof(*pps),
+ hevc_pps_free, NULL, 0);
if (!pps_buf) {
av_freep(&pps);
return AVERROR(ENOMEM);
@@ -1017,7 +1029,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
ret = AVERROR_INVALIDDATA;
goto err;
}
- sps = (HEVCSPS*)s->sps_list[pps->sps_id]->data;
+ sps = (HEVCSPS *)s->sps_list[pps->sps_id]->data;
pps->dependent_slice_segments_enabled_flag = get_bits1(gb);
pps->output_flag_present_flag = get_bits1(gb);
@@ -1064,8 +1076,8 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
pps->entropy_coding_sync_enabled_flag = get_bits1(gb);
if (pps->tiles_enabled_flag) {
- pps->num_tile_columns = get_ue_golomb_long(gb) + 1;
- pps->num_tile_rows = get_ue_golomb_long(gb) + 1;
+ pps->num_tile_columns = get_ue_golomb_long(gb) + 1;
+ pps->num_tile_rows = get_ue_golomb_long(gb) + 1;
if (pps->num_tile_columns == 0 ||
pps->num_tile_columns >= sps->width) {
av_log(s->avctx, AV_LOG_ERROR, "num_tile_columns_minus1 out of range: %d\n",
@@ -1093,7 +1105,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
int sum = 0;
for (i = 0; i < pps->num_tile_columns - 1; i++) {
pps->column_width[i] = get_ue_golomb_long(gb) + 1;
- sum += pps->column_width[i];
+ sum += pps->column_width[i];
}
if (sum >= sps->ctb_width) {
av_log(s->avctx, AV_LOG_ERROR, "Invalid tile widths.\n");
@@ -1105,7 +1117,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
sum = 0;
for (i = 0; i < pps->num_tile_rows - 1; i++) {
pps->row_height[i] = get_ue_golomb_long(gb) + 1;
- sum += pps->row_height[i];
+ sum += pps->row_height[i];
}
if (sum >= sps->ctb_height) {
av_log(s->avctx, AV_LOG_ERROR, "Invalid tile heights.\n");
@@ -1122,7 +1134,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
pps->deblocking_filter_control_present_flag = get_bits1(gb);
if (pps->deblocking_filter_control_present_flag) {
pps->deblocking_filter_override_enabled_flag = get_bits1(gb);
- pps->disable_dbf = get_bits1(gb);
+ pps->disable_dbf = get_bits1(gb);
if (!pps->disable_dbf) {
pps->beta_offset = get_se_golomb(gb) * 2;
pps->tc_offset = get_se_golomb(gb) * 2;
@@ -1141,8 +1153,8 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
}
}
- pps->pps_scaling_list_data_present_flag = get_bits1(gb);
- if (pps->pps_scaling_list_data_present_flag) {
+ pps->scaling_list_data_present_flag = get_bits1(gb);
+ if (pps->scaling_list_data_present_flag) {
set_default_scaling_list_data(&pps->scaling_list);
ret = scaling_list_data(s, &pps->scaling_list);
if (ret < 0)
@@ -1199,9 +1211,9 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
pps->row_bd[i + 1] = pps->row_bd[i] + pps->row_height[i];
for (i = 0, j = 0; i < sps->ctb_width; i++) {
- if (i > pps->col_bd[j])
- j++;
- pps->col_idxX[i] = j;
+ if (i > pps->col_bd[j])
+ j++;
+ pps->col_idxX[i] = j;
}
/**
@@ -1243,16 +1255,16 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
}
}
- for (i = 0; i < tile_x; i++ )
+ for (i = 0; i < tile_x; i++)
val += pps->row_height[tile_y] * pps->column_width[i];
- for (i = 0; i < tile_y; i++ )
+ for (i = 0; i < tile_y; i++)
val += sps->ctb_width * pps->row_height[i];
val += (tb_y - pps->row_bd[tile_y]) * pps->column_width[tile_x] +
tb_x - pps->col_bd[tile_x];
pps->ctb_addr_rs_to_ts[ctb_addr_rs] = val;
- pps->ctb_addr_ts_to_rs[val] = ctb_addr_rs;
+ pps->ctb_addr_ts_to_rs[val] = ctb_addr_rs;
}
for (j = 0, tile_id = 0; j < pps->num_tile_rows; j++)
@@ -1273,11 +1285,11 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
for (y = 0; y < sps->min_cb_height; y++) {
for (x = 0; x < sps->min_cb_width; x++) {
- int tb_x = x >> sps->log2_diff_max_min_coding_block_size;
- int tb_y = y >> sps->log2_diff_max_min_coding_block_size;
+ int tb_x = x >> sps->log2_diff_max_min_coding_block_size;
+ int tb_y = y >> sps->log2_diff_max_min_coding_block_size;
int ctb_addr_rs = sps->ctb_width * tb_y + tb_x;
- int val = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
- (sps->log2_diff_max_min_coding_block_size * 2);
+ int val = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
+ (sps->log2_diff_max_min_coding_block_size * 2);
for (i = 0; i < sps->log2_diff_max_min_coding_block_size; i++) {
int m = 1 << i;
val += (m & x ? m * m : 0) + (m & y ? 2 * m * m : 0);
@@ -1289,11 +1301,11 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
log2_diff_ctb_min_tb_size = sps->log2_ctb_size - sps->log2_min_tb_size;
for (y = 0; y < sps->min_tb_height; y++) {
for (x = 0; x < sps->min_tb_width; x++) {
- int tb_x = x >> log2_diff_ctb_min_tb_size;
- int tb_y = y >> log2_diff_ctb_min_tb_size;
+ int tb_x = x >> log2_diff_ctb_min_tb_size;
+ int tb_y = y >> log2_diff_ctb_min_tb_size;
int ctb_addr_rs = sps->ctb_width * tb_y + tb_x;
- int val = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
- (log2_diff_ctb_min_tb_size * 2);
+ int val = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
+ (log2_diff_ctb_min_tb_size * 2);
for (i = 0; i < log2_diff_ctb_min_tb_size; i++) {
int m = 1 << i;
val += (m & x ? m * m : 0) + (m & y ? 2 * m * m : 0);