Lines Matching refs:vps

431 static RK_S32 parse_vps_extension (HEVCContext *s, HEVCVPS *vps)  in parse_vps_extension()  argument
438 READ_ONEBIT(gb, &vps->avc_base_layer_flag); in parse_vps_extension()
439 READ_ONEBIT(gb, &vps->splitting_flag); in parse_vps_extension()
442 READ_ONEBIT(gb, &vps->scalability_mask[i]); in parse_vps_extension()
443 numScalabilityTypes += vps->scalability_mask[i]; in parse_vps_extension()
444 if ( i != 1 && vps->scalability_mask[i] != 0) { in parse_vps_extension()
449 vps->m_numScalabilityTypes = numScalabilityTypes; in parse_vps_extension()
451 READ_BITS(gb, 3, &vps->dimension_id_len[i]); in parse_vps_extension()
452 vps->dimension_id_len[i] = vps->dimension_id_len[i] + 1; in parse_vps_extension()
455 if (vps->splitting_flag) { in parse_vps_extension()
458 numBits += vps->dimension_id_len[i]; in parse_vps_extension()
464 READ_ONEBIT(gb, &vps->nuh_layer_id_present_flag); in parse_vps_extension()
465 vps->layer_id_in_nuh[0] = 0; in parse_vps_extension()
466 vps->m_layerIdInVps[0] = 0; in parse_vps_extension()
468 for (i = 1; i < vps->vps_max_layers; i++) { in parse_vps_extension()
469 if (vps->nuh_layer_id_present_flag ) { in parse_vps_extension()
470 READ_BITS(gb, 6, vps->layer_id_in_nuh[i]); in parse_vps_extension()
472 vps->layer_id_in_nuh[i] = i; in parse_vps_extension()
474 vps->m_layerIdInVps[vps->layer_id_in_nuh[i]] = i; in parse_vps_extension()
476 READ_BITS(gb, vps->dimension_id_len[j], &vps->dimension_id[i][j]); in parse_vps_extension()
483 vps->m_numDirectRefLayers[0] = 0; in parse_vps_extension()
484 for ( i = 1; i <= vps->vps_max_layers - 1; i++) { in parse_vps_extension()
487 READ_ONEBIT(gb, &vps->direct_dependency_flag[i][j]); in parse_vps_extension()
488 if (vps->direct_dependency_flag[i][j]) { in parse_vps_extension()
489 vps->m_refLayerId[i][numDirectRefLayers] = j; in parse_vps_extension()
494 vps->m_numDirectRefLayers[i] = numDirectRefLayers; in parse_vps_extension()
501 if ( value != (vps->vps_num_layer_sets - 1)) { //vps_number_layer_sets_minus1 in parse_vps_extension()
504 READ_BITS(gb, 6, &vps->vps_num_profile_tier_level); in parse_vps_extension()
505 vps->vps_num_profile_tier_level = vps->vps_num_profile_tier_level + 1; in parse_vps_extension()
506 vps->PTLExt = mpp_malloc(PTL*, vps->vps_num_profile_tier_level); // TO DO add free in parse_vps_extension()
508 for (i = 1; i <= vps->vps_num_profile_tier_level - 1; i++) in parse_vps_extension()
510 vps->PTLExt = mpp_malloc(PTL*, vps->vps_num_layer_sets); // TO DO add free in parse_vps_extension()
511 for (i = 1; i <= vps->vps_num_layer_sets - 1; i++) in parse_vps_extension()
514 READ_ONEBIT(gb, &vps->vps_profile_present_flag[i]); in parse_vps_extension()
515 if ( !vps->vps_profile_present_flag[i] ) { in parse_vps_extension()
517 READ_BITS(gb, 6, &vps->profile_ref[i]) in parse_vps_extension()
519 vps->profile_ref[i] = vps->profile_ref[i] + 1; in parse_vps_extension()
522 READ_UE(gb, &vps->profile_ref[i]); in parse_vps_extension()
524 vps->PTLExt[i] = mpp_malloc(PTL, 1); // TO DO add free in parse_vps_extension()
525 memcpy(vps->PTLExt[i], vps->PTLExt[vps->profile_ref[i]], sizeof(PTL)); in parse_vps_extension()
527 vps->PTLExt[i] = mpp_malloc(PTL, 1); // TO DO add free in parse_vps_extension()
528 parse_ptl(s, vps->PTLExt[i], vps->vps_max_sub_layers); in parse_vps_extension()
533 READ_ONEBIT(gb, &vps->more_output_layer_sets_than_default_flag ); in parse_vps_extension()
535 if (! vps->more_output_layer_sets_than_default_flag ) { in parse_vps_extension()
536 numOutputLayerSets = vps->vps_num_layer_sets; in parse_vps_extension()
538 READ_BITS(gb, 10, &vps->num_add_output_layer_sets); in parse_vps_extension()
539 numOutputLayerSets = vps->vps_num_layer_sets + vps->num_add_output_layer_sets; in parse_vps_extension()
542 READ_ONEBIT(gb, &vps->default_one_target_output_layer_flag); in parse_vps_extension()
544 vps->m_numOutputLayerSets = numOutputLayerSets; in parse_vps_extension()
546 if ( i > (vps->vps_num_layer_sets - 1) ) { in parse_vps_extension()
548 while ((1 << numBits) < (vps->vps_num_layer_sets - 1)) { in parse_vps_extension()
551 READ_BITS(gb, numBits, &vps->output_layer_set_idx[i]); in parse_vps_extension()
552 vps->output_layer_set_idx[i] = vps->output_layer_set_idx[i] + 1; in parse_vps_extension()
553 lsIdx = vps->output_layer_set_idx[i]; in parse_vps_extension()
554 for (j = 0; j < vps->m_numLayerInIdList[lsIdx] - 1; j++) { in parse_vps_extension()
555 READ_ONEBIT(gb, &vps->output_layer_flag[i][j]); in parse_vps_extension()
559 if ( vps->default_one_target_output_layer_flag ) { in parse_vps_extension()
560 for (j = 0; j < vps->m_numLayerInIdList[lsIdx]; j++) { in parse_vps_extension()
561 vps->output_layer_flag[i][j] = (j == (vps->m_numLayerInIdList[lsIdx] - 1)); in parse_vps_extension()
564 for (j = 0; j < vps->m_numLayerInIdList[lsIdx]; j++) { in parse_vps_extension()
565 vps->output_layer_flag[i][j] = 1; in parse_vps_extension()
570 while ((1 << numBits) < (vps->vps_num_profile_tier_level)) { in parse_vps_extension()
573 READ_BITS(gb, numBits, &vps->profile_level_tier_idx[i]); in parse_vps_extension()
577 READ_ONEBIT(gb, &vps->max_one_active_ref_layer_flag); in parse_vps_extension()
581 static RK_S32 compare_vps(HEVCVPS *openhevc_vps, HEVCVPS *vps) in compare_vps() argument
585 vps->vps_temporal_id_nesting_flag) { in compare_vps()
590 if (openhevc_vps->vps_max_layers != vps->vps_max_layers) { in compare_vps()
595 if (openhevc_vps->vps_max_sub_layers != vps->vps_max_sub_layers) { in compare_vps()
600 vps->vps_sub_layer_ordering_info_present_flag) { in compare_vps()
605 if (openhevc_vps->vps_max_layer_id != vps->vps_max_layer_id) { in compare_vps()
611 if (openhevc_vps->vps_num_layer_sets != vps->vps_num_layer_sets) { in compare_vps()
617 vps->vps_timing_info_present_flag) { in compare_vps()
623 vps->vps_num_units_in_tick) { in compare_vps()
629 vps->vps_time_scale) { in compare_vps()
634 vps->vps_poc_proportional_to_timing_flag) { in compare_vps()
639 vps->vps_num_ticks_poc_diff_one) { in compare_vps()
645 != vps->vps_num_hrd_parameters) { in compare_vps()
1045 HEVCVPS *vps = NULL; in mpp_hevc_decode_nal_vps() local
1051 vps = (HEVCVPS*)vps_buf; in mpp_hevc_decode_nal_vps()
1069 READ_BITS(gb, 6, &vps->vps_max_layers); in mpp_hevc_decode_nal_vps()
1070 vps->vps_max_layers = vps->vps_max_layers + 1; in mpp_hevc_decode_nal_vps()
1072 READ_BITS(gb, 3, &vps->vps_max_sub_layers); in mpp_hevc_decode_nal_vps()
1073 vps->vps_max_sub_layers = vps->vps_max_sub_layers + 1; in mpp_hevc_decode_nal_vps()
1075 READ_ONEBIT(gb, & vps->vps_temporal_id_nesting_flag); in mpp_hevc_decode_nal_vps()
1083 if (vps->vps_max_sub_layers > MAX_SUB_LAYERS) { in mpp_hevc_decode_nal_vps()
1085 vps->vps_max_sub_layers); in mpp_hevc_decode_nal_vps()
1089 parse_ptl(s, &vps->ptl, vps->vps_max_sub_layers); in mpp_hevc_decode_nal_vps()
1091 READ_ONEBIT(gb, &vps->vps_sub_layer_ordering_info_present_flag); in mpp_hevc_decode_nal_vps()
1093 i = vps->vps_sub_layer_ordering_info_present_flag ? 0 : vps->vps_max_sub_layers - 1; in mpp_hevc_decode_nal_vps()
1094 for (; i < vps->vps_max_sub_layers; i++) { in mpp_hevc_decode_nal_vps()
1095 READ_UE(gb, &vps->vps_max_dec_pic_buffering[i]); in mpp_hevc_decode_nal_vps()
1096 vps->vps_max_dec_pic_buffering[i] = vps->vps_max_dec_pic_buffering[i] + 1; in mpp_hevc_decode_nal_vps()
1097 READ_UE(gb, &vps->vps_num_reorder_pics[i]); in mpp_hevc_decode_nal_vps()
1098 READ_UE(gb, &vps->vps_max_latency_increase[i]); in mpp_hevc_decode_nal_vps()
1099 vps->vps_max_latency_increase[i] = vps->vps_max_latency_increase[i] - 1; in mpp_hevc_decode_nal_vps()
1101 if (vps->vps_max_dec_pic_buffering[i] > MAX_DPB_SIZE) { in mpp_hevc_decode_nal_vps()
1103 vps->vps_max_dec_pic_buffering[i] - 1); in mpp_hevc_decode_nal_vps()
1106 if (vps->vps_num_reorder_pics[i] > vps->vps_max_dec_pic_buffering[i] - 1) { in mpp_hevc_decode_nal_vps()
1108 vps->vps_num_reorder_pics[i]); in mpp_hevc_decode_nal_vps()
1113 READ_BITS(gb, 6, &vps->vps_max_layer_id); in mpp_hevc_decode_nal_vps()
1114 READ_UE(gb, &vps->vps_num_layer_sets); in mpp_hevc_decode_nal_vps()
1115 vps->vps_num_layer_sets += 1; in mpp_hevc_decode_nal_vps()
1116 for (i = 1; i < vps->vps_num_layer_sets; i++) in mpp_hevc_decode_nal_vps()
1117 for (j = 0; j <= vps->vps_max_layer_id; j++) in mpp_hevc_decode_nal_vps()
1120 READ_ONEBIT(gb, &vps->vps_timing_info_present_flag); in mpp_hevc_decode_nal_vps()
1121 if (vps->vps_timing_info_present_flag) { in mpp_hevc_decode_nal_vps()
1122 mpp_read_longbits(gb, 32, &vps->vps_num_units_in_tick); in mpp_hevc_decode_nal_vps()
1123 mpp_read_longbits(gb, 32, &vps->vps_time_scale); in mpp_hevc_decode_nal_vps()
1124 READ_ONEBIT(gb, &vps->vps_poc_proportional_to_timing_flag); in mpp_hevc_decode_nal_vps()
1125 if (vps->vps_poc_proportional_to_timing_flag) { in mpp_hevc_decode_nal_vps()
1126 READ_UE(gb, &vps->vps_num_ticks_poc_diff_one); in mpp_hevc_decode_nal_vps()
1127 vps->vps_num_ticks_poc_diff_one += 1; in mpp_hevc_decode_nal_vps()
1129 READ_UE(gb, &vps->vps_num_hrd_parameters); in mpp_hevc_decode_nal_vps()
1130 for (i = 0; i < vps->vps_num_hrd_parameters; i++) { in mpp_hevc_decode_nal_vps()
1137 decode_hrd(s, common_inf_present, vps->vps_max_sub_layers); in mpp_hevc_decode_nal_vps()
1144 if (vps->vps_extension_flag) { // vps_extension_flag in mpp_hevc_decode_nal_vps()
1145 parse_vps_extension(s, vps); in mpp_hevc_decode_nal_vps()
1150 HEVCVPS *openhevc_vps = (HEVCVPS*)&info->vps[vps_id]; in mpp_hevc_decode_nal_vps()