Lines Matching refs:p_Vid
390 static void update_video_pars(H264dVideoCtx_t *p_Vid, H264_SPS_t *sps) in update_video_pars() argument
398 p_Vid->max_frame_num = 1 << (sps->log2_max_frame_num_minus4 + 4); in update_video_pars()
399 p_Vid->PicWidthInMbs = (sps->pic_width_in_mbs_minus1 + 1); in update_video_pars()
400 …p_Vid->FrameHeightInMbs = (2 - sps->frame_mbs_only_flag) * (sps->pic_height_in_map_units_minus1 + … in update_video_pars()
401 p_Vid->yuv_format = sps->chroma_format_idc; in update_video_pars()
402 p_Vid->frame_mbs_only_flag = sps->frame_mbs_only_flag; in update_video_pars()
404 p_Vid->width = p_Vid->PicWidthInMbs * 16; in update_video_pars()
405 p_Vid->height = p_Vid->FrameHeightInMbs * 16; in update_video_pars()
406 p_Vid->bit_depth_luma = sps->bit_depth_luma_minus8 + 8; in update_video_pars()
407 p_Vid->bit_depth_chroma = sps->bit_depth_chroma_minus8 + 8; in update_video_pars()
409 if (p_Vid->yuv_format == H264_CHROMA_420) { in update_video_pars()
410 p_Vid->width_cr = (p_Vid->width >> 1); in update_video_pars()
411 p_Vid->height_cr = (p_Vid->height >> 1); in update_video_pars()
412 } else if (p_Vid->yuv_format == H264_CHROMA_422) { in update_video_pars()
413 p_Vid->width_cr = (p_Vid->width >> 1); in update_video_pars()
414 p_Vid->height_cr = p_Vid->height; in update_video_pars()
425 p_Vid->width_after_crop = p_Vid->width - crop_left - crop_right; in update_video_pars()
426 p_Vid->height_after_crop = p_Vid->height - crop_top - crop_bottom; in update_video_pars()
429 static RK_U32 video_pars_changed(H264dVideoCtx_t *p_Vid, H264_SPS_t *sps, RK_U8 layer_id) in video_pars_changed() argument
433 ret |= p_Vid->p_Dpb_layer[layer_id]->num_ref_frames != sps->max_num_ref_frames; in video_pars_changed()
434 ret |= p_Vid->last_pic_width_in_mbs_minus1[layer_id] != sps->pic_width_in_mbs_minus1; in video_pars_changed()
435 …ret |= p_Vid->last_pic_height_in_map_units_minus1[layer_id] != sps->pic_height_in_map_units_minus1; in video_pars_changed()
436 ret |= p_Vid->last_profile_idc[layer_id] != sps->profile_idc; in video_pars_changed()
437 ret |= p_Vid->last_level_idc[layer_id] != sps->level_idc; in video_pars_changed()
438 ret |= !p_Vid->p_Dpb_layer[layer_id]->init_done; in video_pars_changed()
443 static void update_last_video_pars(H264dVideoCtx_t *p_Vid, H264_SPS_t *sps, RK_U8 layer_id) in update_last_video_pars() argument
445 p_Vid->last_pic_width_in_mbs_minus1[layer_id] = sps->pic_width_in_mbs_minus1; in update_last_video_pars()
446 p_Vid->last_pic_height_in_map_units_minus1[layer_id] = sps->pic_height_in_map_units_minus1; in update_last_video_pars()
447 p_Vid->last_profile_idc[layer_id] = sps->profile_idc; in update_last_video_pars()
448 p_Vid->last_level_idc[layer_id] = sps->level_idc; in update_last_video_pars()
473 if (!currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id]) { in process_sps()
474 currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id] = mpp_calloc(H264_SPS_t, 1); in process_sps()
476 memcpy(currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id], in process_sps()
479 p_Cur->p_Vid->spspps_update = 1; in process_sps()
552 currSlice->p_Vid->profile_idc = cur_subsps->sps.profile_idc; in process_subsps()
556 if (!currSlice->p_Vid->subspsSet[cur_subsps->sps.seq_parameter_set_id]) in process_subsps()
557 … currSlice->p_Vid->subspsSet[cur_subsps->sps.seq_parameter_set_id] = mpp_calloc(H264_subSPS_t, 1); in process_subsps()
558 p_subset = currSlice->p_Vid->subspsSet[cur_subsps->sps.seq_parameter_set_id]; in process_subsps()
578 MPP_RET activate_sps(H264dVideoCtx_t *p_Vid, H264_SPS_t *sps, H264_subSPS_t *subset_sps) in activate_sps() argument
581 INP_CHECK(ret, !p_Vid && !sps && !subset_sps); in activate_sps()
582 if (p_Vid->dec_pic) { in activate_sps()
583 FUN_CHECK(ret = exit_picture(p_Vid, &p_Vid->dec_pic)); in activate_sps()
585 if (p_Vid->active_mvc_sps_flag) { // layer_id == 1 in activate_sps()
586 p_Vid->active_sps = &subset_sps->sps; in activate_sps()
587 p_Vid->active_subsps = subset_sps; in activate_sps()
588 p_Vid->active_sps_id[0] = 0; in activate_sps()
589 p_Vid->active_sps_id[1] = subset_sps->sps.seq_parameter_set_id; in activate_sps()
590 if (video_pars_changed(p_Vid, p_Vid->active_sps, 1)) { in activate_sps()
591 FUN_CHECK(ret = flush_dpb(p_Vid->p_Dpb_layer[1], 2)); in activate_sps()
592 FUN_CHECK(ret = init_dpb(p_Vid, p_Vid->p_Dpb_layer[1], 2)); in activate_sps()
593 FUN_CHECK(ret = check_mvc_dpb(p_Vid, p_Vid->p_Dpb_layer[0], p_Vid->p_Dpb_layer[1])); in activate_sps()
594 update_last_video_pars(p_Vid, p_Vid->active_sps, 1); in activate_sps()
596 p_Vid->dpb_size[1] = p_Vid->p_Dpb_layer[1]->size; in activate_sps()
597 p_Vid->spspps_update = 1; in activate_sps()
598 if (p_Vid->p_Dec->mvc_valid && p_Vid->p_Dpb_layer[1]->size > 0) { in activate_sps()
599 … p_Vid->p_Dpb_layer[0]->size = MPP_MIN(p_Vid->p_Dpb_layer[1]->size, MAX_DPB_SIZE / 2); in activate_sps()
600 p_Vid->dpb_size[0] = p_Vid->p_Dpb_layer[0]->size; in activate_sps()
603 VAL_CHECK(ret, p_Vid->dpb_size[1] > 0); in activate_sps()
605 p_Vid->active_sps = sps; in activate_sps()
606 p_Vid->active_subsps = NULL; in activate_sps()
607 p_Vid->active_sps_id[0] = sps->seq_parameter_set_id; in activate_sps()
608 p_Vid->active_sps_id[1] = 0; in activate_sps()
609 if (video_pars_changed(p_Vid, p_Vid->active_sps, 0)) { in activate_sps()
610 if (!p_Vid->no_output_of_prior_pics_flag) { in activate_sps()
611 FUN_CHECK(ret = flush_dpb(p_Vid->p_Dpb_layer[0], 1)); in activate_sps()
613 FUN_CHECK(ret = init_dpb(p_Vid, p_Vid->p_Dpb_layer[0], 1)); in activate_sps()
614 update_last_video_pars(p_Vid, p_Vid->active_sps, 0); in activate_sps()
616 p_Vid->dpb_size[0] = p_Vid->p_Dpb_layer[0]->size; in activate_sps()
617 p_Vid->spspps_update = 1; in activate_sps()
619 VAL_CHECK(ret, p_Vid->dpb_size[0] > 0); in activate_sps()
622 p_Vid->dpb_size[0], p_Vid->active_mvc_sps_flag, p_Vid->dpb_size[1]); in activate_sps()
623 update_video_pars(p_Vid, p_Vid->active_sps); in activate_sps()