• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavcodec/

Lines Matching defs:pps

1035     HEVCPPS *pps = (HEVCPPS*)data;
1037 av_freep(&pps->column_width);
1038 av_freep(&pps->row_height);
1039 av_freep(&pps->col_bd);
1040 av_freep(&pps->row_bd);
1041 av_freep(&pps->col_idxX);
1042 av_freep(&pps->ctb_addr_rs_to_ts);
1043 av_freep(&pps->ctb_addr_ts_to_rs);
1044 av_freep(&pps->tile_pos_rs);
1045 av_freep(&pps->tile_id);
1046 av_freep(&pps->min_tb_addr_zs_tab);
1048 av_freep(&pps);
1051 static int pps_range_extensions(HEVCContext *s, HEVCPPS *pps, HEVCSPS *sps) {
1055 if (pps->transform_skip_enabled_flag) {
1056 pps->log2_max_transform_skip_block_size = get_ue_golomb_long(gb) + 2;
1058 pps->cross_component_prediction_enabled_flag = get_bits1(gb);
1059 if (pps->cross_component_prediction_enabled_flag) {
1063 pps->chroma_qp_offset_list_enabled_flag = get_bits1(gb);
1064 if (pps->chroma_qp_offset_list_enabled_flag) {
1065 pps->diff_cu_chroma_qp_offset_depth = get_ue_golomb_long(gb);
1066 pps->chroma_qp_offset_list_len_minus1 = get_ue_golomb_long(gb);
1067 if (pps->chroma_qp_offset_list_len_minus1 && pps->chroma_qp_offset_list_len_minus1 >= 5) {
1072 for (i = 0; i <= pps->chroma_qp_offset_list_len_minus1; i++) {
1073 pps->cb_qp_offset_list[i] = get_se_golomb_long(gb);
1074 if (pps->cb_qp_offset_list[i]) {
1078 pps->cr_qp_offset_list[i] = get_se_golomb_long(gb);
1079 if (pps->cr_qp_offset_list[i]) {
1085 pps->log2_sao_offset_scale_luma = get_ue_golomb_long(gb);
1086 pps->log2_sao_offset_scale_chroma = get_ue_golomb_long(gb);
1102 HEVCPPS *pps = av_mallocz(sizeof(*pps));
1104 if (!pps)
1107 pps_buf = av_buffer_create((uint8_t *)pps, sizeof(*pps),
1110 av_freep(&pps);
1117 pps->loop_filter_across_tiles_enabled_flag = 1;
1118 pps->num_tile_columns = 1;
1119 pps->num_tile_rows = 1;
1120 pps->uniform_spacing_flag = 1;
1121 pps->disable_dbf = 0;
1122 pps->beta_offset = 0;
1123 pps->tc_offset = 0;
1124 pps->log2_max_transform_skip_block_size = 2;
1133 pps->sps_id = get_ue_golomb_long(gb);
1134 if (pps->sps_id >= MAX_SPS_COUNT) {
1135 av_log(s->avctx, AV_LOG_ERROR, "SPS id out of range: %d\n", pps->sps_id);
1139 if (!s->sps_list[pps->sps_id]) {
1140 av_log(s->avctx, AV_LOG_ERROR, "SPS %u does not exist.\n", pps->sps_id);
1144 sps = (HEVCSPS *)s->sps_list[pps->sps_id]->data;
1146 pps->dependent_slice_segments_enabled_flag = get_bits1(gb);
1147 pps->output_flag_present_flag = get_bits1(gb);
1148 pps->num_extra_slice_header_bits = get_bits(gb, 3);
1150 pps->sign_data_hiding_flag = get_bits1(gb);
1152 pps->cabac_init_present_flag = get_bits1(gb);
1154 pps->num_ref_idx_l0_default_active = get_ue_golomb_long(gb) + 1;
1155 pps->num_ref_idx_l1_default_active = get_ue_golomb_long(gb) + 1;
1157 pps->pic_init_qp_minus26 = get_se_golomb(gb);
1159 pps->constrained_intra_pred_flag = get_bits1(gb);
1160 pps->transform_skip_enabled_flag = get_bits1(gb);
1162 pps->cu_qp_delta_enabled_flag = get_bits1(gb);
1163 pps->diff_cu_qp_delta_depth = 0;
1164 if (pps->cu_qp_delta_enabled_flag)
1165 pps->diff_cu_qp_delta_depth = get_ue_golomb_long(gb);
1167 pps->cb_qp_offset = get_se_golomb(gb);
1168 if (pps->cb_qp_offset < -12 || pps->cb_qp_offset > 12) {
1170 pps->cb_qp_offset);
1174 pps->cr_qp_offset = get_se_golomb(gb);
1175 if (pps->cr_qp_offset < -12 || pps->cr_qp_offset > 12) {
1177 pps->cr_qp_offset);
1181 pps->pic_slice_level_chroma_qp_offsets_present_flag = get_bits1(gb);
1183 pps->weighted_pred_flag = get_bits1(gb);
1184 pps->weighted_bipred_flag = get_bits1(gb);
1186 pps->transquant_bypass_enable_flag = get_bits1(gb);
1187 pps->tiles_enabled_flag = get_bits1(gb);
1188 pps->entropy_coding_sync_enabled_flag = get_bits1(gb);
1190 if (pps->tiles_enabled_flag) {
1191 pps->num_tile_columns = get_ue_golomb_long(gb) + 1;
1192 pps->num_tile_rows = get_ue_golomb_long(gb) + 1;
1193 if (pps->num_tile_columns == 0 ||
1194 pps->num_tile_columns >= sps->width) {
1196 pps->num_tile_columns - 1);
1200 if (pps->num_tile_rows == 0 ||
1201 pps->num_tile_rows >= sps->height) {
1203 pps->num_tile_rows - 1);
1208 pps->column_width = av_malloc_array(pps->num_tile_columns, sizeof(*pps->column_width));
1209 pps->row_height = av_malloc_array(pps->num_tile_rows, sizeof(*pps->row_height));
1210 if (!pps->column_width || !pps->row_height) {
1215 pps->uniform_spacing_flag = get_bits1(gb);
1216 if (!pps->uniform_spacing_flag) {
1218 for (i = 0; i < pps->num_tile_columns - 1; i++) {
1219 pps->column_width[i] = get_ue_golomb_long(gb) + 1;
1220 sum += pps->column_width[i];
1227 pps->column_width[pps->num_tile_columns - 1] = sps->ctb_width - sum;
1230 for (i = 0; i < pps->num_tile_rows - 1; i++) {
1231 pps->row_height[i] = get_ue_golomb_long(gb) + 1;
1232 sum += pps->row_height[i];
1239 pps->row_height[pps->num_tile_rows - 1] = sps->ctb_height - sum;
1241 pps->loop_filter_across_tiles_enabled_flag = get_bits1(gb);
1244 pps->seq_loop_filter_across_slices_enabled_flag = get_bits1(gb);
1246 pps->deblocking_filter_control_present_flag = get_bits1(gb);
1247 if (pps->deblocking_filter_control_present_flag) {
1248 pps->deblocking_filter_override_enabled_flag = get_bits1(gb);
1249 pps->disable_dbf = get_bits1(gb);
1250 if (!pps->disable_dbf) {
1251 pps->beta_offset = get_se_golomb(gb) * 2;
1252 pps->tc_offset = get_se_golomb(gb) * 2;
1253 if (pps->beta_offset/2 < -6 || pps->beta_offset/2 > 6) {
1255 pps->beta_offset/2);
1259 if (pps->tc_offset/2 < -6 || pps->tc_offset/2 > 6) {
1261 pps->tc_offset/2);
1268 pps->scaling_list_data_present_flag = get_bits1(gb);
1269 if (pps->scaling_list_data_present_flag) {
1270 set_default_scaling_list_data(&pps->scaling_list);
1271 ret = scaling_list_data(s, &pps->scaling_list);
1275 pps->lists_modification_present_flag = get_bits1(gb);
1276 pps->log2_parallel_merge_level = get_ue_golomb_long(gb) + 2;
1277 if (pps->log2_parallel_merge_level > sps->log2_ctb_size) {
1279 pps->log2_parallel_merge_level - 2);
1284 pps->slice_header_extension_present_flag = get_bits1(gb);
1292 pps_range_extensions(s, pps, sps);
1297 pps->col_bd = av_malloc_array(pps->num_tile_columns + 1, sizeof(*pps->col_bd));
1298 pps->row_bd = av_malloc_array(pps->num_tile_rows + 1, sizeof(*pps->row_bd));
1299 pps->col_idxX = av_malloc_array(sps->ctb_width, sizeof(*pps->col_idxX));
1300 if (!pps->col_bd || !pps->row_bd || !pps->col_idxX) {
1305 if (pps->uniform_spacing_flag) {
1306 if (!pps->column_width) {
1307 pps->column_width = av_malloc_array(pps->num_tile_columns, sizeof(*pps->column_width));
1308 pps->row_height = av_malloc_array(pps->num_tile_rows, sizeof(*pps->row_height));
1310 if (!pps->column_width || !pps->row_height) {
1315 for (i = 0; i < pps->num_tile_columns; i++) {
1316 pps->column_width[i] = ((i + 1) * sps->ctb_width) / pps->num_tile_columns -
1317 (i * sps->ctb_width) / pps->num_tile_columns;
1320 for (i = 0; i < pps->num_tile_rows; i++) {
1321 pps->row_height[i] = ((i + 1) * sps->ctb_height) / pps->num_tile_rows -
1322 (i * sps->ctb_height) / pps->num_tile_rows;
1326 pps->col_bd[0] = 0;
1327 for (i = 0; i < pps->num_tile_columns; i++)
1328 pps->col_bd[i + 1] = pps->col_bd[i] + pps->column_width[i];
1330 pps->row_bd[0] = 0;
1331 for (i = 0; i < pps->num_tile_rows; i++)
1332 pps->row_bd[i + 1] = pps->row_bd[i] + pps->row_height[i];
1335 if (i > pps->col_bd[j])
1337 pps->col_idxX[i] = j;
1345 pps->ctb_addr_rs_to_ts = av_malloc_array(pic_area_in_ctbs, sizeof(*pps->ctb_addr_rs_to_ts));
1346 pps->ctb_addr_ts_to_rs = av_malloc_array(pic_area_in_ctbs, sizeof(*pps->ctb_addr_ts_to_rs));
1347 pps->tile_id = av_malloc_array(pic_area_in_ctbs, sizeof(*pps->tile_id));
1348 pps->min_tb_addr_zs_tab = av_malloc_array((sps->tb_mask+2) * (sps->tb_mask+2), sizeof(*pps->min_tb_addr_zs_tab));
1349 if (!pps->ctb_addr_rs_to_ts || !pps->ctb_addr_ts_to_rs ||
1350 !pps->tile_id || !pps->min_tb_addr_zs_tab) {
1362 for (i = 0; i < pps->num_tile_columns; i++) {
1363 if (tb_x < pps->col_bd[i + 1]) {
1369 for (i = 0; i < pps->num_tile_rows; i++) {
1370 if (tb_y < pps->row_bd[i + 1]) {
1377 val += pps->row_height[tile_y] * pps->column_width[i];
1379 val += sps->ctb_width * pps->row_height[i];
1381 val += (tb_y - pps->row_bd[tile_y]) * pps->column_width[tile_x] +
1382 tb_x - pps->col_bd[tile_x];
1384 pps->ctb_addr_rs_to_ts[ctb_addr_rs] = val;
1385 pps->ctb_addr_ts_to_rs[val] = ctb_addr_rs;
1388 for (j = 0, tile_id = 0; j < pps->num_tile_rows; j++)
1389 for (i = 0; i < pps->num_tile_columns; i++, tile_id++)
1390 for (y = pps->row_bd[j]; y < pps->row_bd[j + 1]; y++)
1391 for (x = pps->col_bd[i]; x < pps->col_bd[i + 1]; x++)
1392 pps->tile_id[pps->ctb_addr_rs_to_ts[y * sps->ctb_width + x]] = tile_id;
1394 pps->tile_pos_rs = av_malloc_array(tile_id, sizeof(*pps->tile_pos_rs));
1395 if (!pps->tile_pos_rs) {
1400 for (j = 0; j < pps->num_tile_rows; j++)
1401 for (i = 0; i < pps->num_tile_columns; i++)
1402 pps->tile_pos_rs[j * pps->num_tile_columns + i] = pps->row_bd[j] * sps->ctb_width + pps->col_bd[i];
1405 pps->min_tb_addr_zs = &pps->min_tb_addr_zs_tab[1*(sps->tb_mask+2)+1];
1407 pps->min_tb_addr_zs_tab[y*(sps->tb_mask+2)] = -1;
1408 pps->min_tb_addr_zs_tab[y] = -1;
1415 int val = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
1421 pps->min_tb_addr_zs[y * (sps->tb_mask+2) + x] = val;