Lines Matching refs:cfg
115 hal_info_from_enc_cfg(enc->hal_info, enc->cfg); in update_enc_hal_info()
127 MppDevInfoCfg cfg; in update_hal_info_fps() local
132 cfg.type = ENC_INFO_FPS_CALC; in update_hal_info_fps()
133 cfg.flag = CODEC_INFO_FLAG_STRING; in update_hal_info_fps()
134 cfg.data = fps; in update_hal_info_fps()
136 mpp_dev_ioctl(enc->dev, MPP_DEV_SET_INFO, &cfg); in update_hal_info_fps()
243 MppEncCfgSet *cfg = enc->cfg; in check_low_delay_part_mode() local
247 if (!(cfg->base.low_delay)) in check_low_delay_part_mode()
250 if (!cfg->split.split_mode) in check_low_delay_part_mode()
261 MppEncCfgSet *cfg = enc->cfg; in check_low_delay_output() local
265 if (!cfg->split.split_mode || !(cfg->split.split_out & MPP_ENC_SPLIT_OUT_LOWDELAY)) in check_low_delay_output()
268 if (cfg->rc.max_reenc_times) { in check_low_delay_output()
270 cfg->rc.max_reenc_times = 0; in check_low_delay_output()
273 if (cfg->rc.drop_mode) { in check_low_delay_output()
275 cfg->rc.drop_mode = MPP_ENC_RC_DROP_FRM_DISABLED; in check_low_delay_output()
278 if (cfg->rc.super_mode) { in check_low_delay_output()
280 cfg->rc.super_mode = MPP_ENC_RC_SUPER_FRM_NONE; in check_low_delay_output()
425 static void show_prep_update(MppEncPrepCfg *cfg, MppEncPrepCfg *set) in show_prep_update() argument
434 if (set->width != cfg->width || set->height != cfg->height) { in show_prep_update()
437 cfg->width, cfg->height, set->width, set->height); in show_prep_update()
440 if (set->hor_stride != cfg->hor_stride || set->ver_stride != cfg->ver_stride) { in show_prep_update()
443 cfg->hor_stride, cfg->ver_stride, in show_prep_update()
447 if (set->format != cfg->format) { in show_prep_update()
449 "fmt %d -> %d ", cfg->format, set->format); in show_prep_update()
452 if (set->rotation != cfg->rotation) { in show_prep_update()
454 "rotate %d -> %d ", cfg->rotation, set->rotation); in show_prep_update()
457 if (set->mirroring != cfg->mirroring) { in show_prep_update()
459 "mirror %d -> %d ", cfg->mirroring, set->mirroring); in show_prep_update()
472 MppEncPrepCfg *cfg = &enc->cfg->prep; in proc_prep_cfg() local
520 cfg->rotation_ext, cfg->mirroring_ext, cfg->flip); in proc_prep_cfg()
521 set->rotation_ext = cfg->rotation_ext; in proc_prep_cfg()
522 set->mirroring_ext = cfg->mirroring_ext; in proc_prep_cfg()
523 set->flip = cfg->flip; in proc_prep_cfg()
559 cfg->range, cfg->color, cfg->colorprim, cfg->colortrc); in proc_prep_cfg()
560 set->range = cfg->range; in proc_prep_cfg()
561 set->color = cfg->color; in proc_prep_cfg()
562 set->colorprim = cfg->colorprim; in proc_prep_cfg()
563 set->colortrc = cfg->colortrc; in proc_prep_cfg()
584 cfg->width, cfg->height, cfg->hor_stride, cfg->ver_stride, cfg->rotation); in proc_prep_cfg()
585 set->width = cfg->width; in proc_prep_cfg()
586 set->height = cfg->height; in proc_prep_cfg()
587 set->width_set = cfg->width; in proc_prep_cfg()
588 set->height_set = cfg->height; in proc_prep_cfg()
589 set->hor_stride = cfg->hor_stride; in proc_prep_cfg()
590 set->ver_stride = cfg->ver_stride; in proc_prep_cfg()
591 set->rotation = cfg->rotation; in proc_prep_cfg()
599 show_prep_update(cfg, set); in proc_prep_cfg()
600 memcpy(cfg, set, sizeof(*cfg)); in proc_prep_cfg()
605 cfg->change_res = 1; in proc_prep_cfg()
616 static void show_rc_update(MppEncRcCfg *cfg, MppEncRcCfg *set, rk_u32 change) in show_rc_update() argument
627 strof_rc_mode(cfg->rc_mode), strof_rc_mode(set->rc_mode)); in show_rc_update()
633 cfg->bps_target, cfg->bps_max, cfg->bps_min, in show_rc_update()
645 cfg->fps_in_num, cfg->fps_in_denom, in show_rc_update()
646 cfg->fps_in_flex ? "flex" : "fix", in show_rc_update()
654 cfg->fps_out_num, cfg->fps_out_denom, in show_rc_update()
655 cfg->fps_out_flex ? "flex" : "fix", in show_rc_update()
662 "gop %d -> %d ", cfg->gop, set->gop); in show_rc_update()
677 MppEncRcCfg *cfg = &enc->cfg->rc; in proc_rc_cfg() local
692 mpp_loge("restore rc_priority to %d\n", cfg->rc_priority); in proc_rc_cfg()
693 set->rc_priority = cfg->rc_priority; in proc_rc_cfg()
699 mpp_loge("restore super_mode to %d\n", cfg->super_mode); in proc_rc_cfg()
700 set->super_mode = cfg->super_mode; in proc_rc_cfg()
705 set->debre_strength, 0, 35, cfg->debre_strength); in proc_rc_cfg()
706 mpp_loge("restore debre_strength to %d\n", cfg->debre_strength); in proc_rc_cfg()
707 set->debre_strength = cfg->debre_strength; in proc_rc_cfg()
717 mpp_loge("restore rc mode to %d\n", cfg->rc_mode); in proc_rc_cfg()
718 set->rc_mode = cfg->rc_mode; in proc_rc_cfg()
731 mpp_loge("restore quality to %d\n", cfg->quality); in proc_rc_cfg()
732 set->quality = cfg->quality; in proc_rc_cfg()
742 cfg->bps_target, cfg->bps_min, cfg->bps_max); in proc_rc_cfg()
743 set->bps_target = cfg->bps_target; in proc_rc_cfg()
744 set->bps_max = cfg->bps_max; in proc_rc_cfg()
745 set->bps_min = cfg->bps_min; in proc_rc_cfg()
767 set->qp_init = cfg->qp_init; in proc_rc_cfg()
768 set->qp_min_i = cfg->qp_min_i; in proc_rc_cfg()
769 set->qp_max_i = cfg->qp_max_i; in proc_rc_cfg()
770 set->qp_min = cfg->qp_min; in proc_rc_cfg()
771 set->qp_max = cfg->qp_max; in proc_rc_cfg()
776 set->qp_delta_ip, cfg->qp_delta_ip); in proc_rc_cfg()
777 set->qp_delta_ip = cfg->qp_delta_ip; in proc_rc_cfg()
781 set->qp_delta_vi, cfg->qp_delta_vi); in proc_rc_cfg()
782 set->qp_delta_vi = cfg->qp_delta_vi; in proc_rc_cfg()
786 set->qp_max_step, cfg->qp_max_step); in proc_rc_cfg()
787 set->qp_max_step = cfg->qp_max_step; in proc_rc_cfg()
795 if (set->rc_mode != cfg->rc_mode) in proc_rc_cfg()
797 if (set->bps_target != cfg->bps_target || in proc_rc_cfg()
798 set->bps_max != cfg->bps_max || in proc_rc_cfg()
799 set->bps_min != cfg->bps_min) in proc_rc_cfg()
801 if (set->fps_in_num != cfg->fps_in_num || in proc_rc_cfg()
802 set->fps_in_denom != cfg->fps_in_denom || in proc_rc_cfg()
803 set->fps_in_flex != cfg->fps_in_flex) in proc_rc_cfg()
805 if (set->fps_out_num != cfg->fps_out_num || in proc_rc_cfg()
806 set->fps_out_denom != cfg->fps_out_denom || in proc_rc_cfg()
807 set->fps_out_flex != cfg->fps_out_flex) in proc_rc_cfg()
809 if (set->gop != cfg->gop) in proc_rc_cfg()
819 show_rc_update(cfg, set, change); in proc_rc_cfg()
820 memcpy(cfg, set, sizeof(*cfg)); in proc_rc_cfg()
823 mpp_enc_refs_set_rc_igop(enc->refs, cfg->gop); in proc_rc_cfg()
829 static void proc_split_cfg(MppEncSliceSplit *cfg, MppEncSliceSplit *set) in proc_split_cfg() argument
834 mpp_loge("restore split mode %d\n", cfg->split_mode); in proc_split_cfg()
835 set->split_mode = cfg->split_mode; in proc_split_cfg()
843 memcpy(cfg, set, sizeof(*cfg)); in proc_split_cfg()
848 MppEncHwCfg *cfg = &enc->cfg->hw; in proc_hw_cfg() local
860 cfg->qp_delta_row_i, cfg->qp_delta_row); in proc_hw_cfg()
861 set->qp_delta_row = cfg->qp_delta_row; in proc_hw_cfg()
862 set->qp_delta_row_i = cfg->qp_delta_row_i; in proc_hw_cfg()
867 set->qbias_en, cfg->qbias_en); in proc_hw_cfg()
868 set->qbias_en = cfg->qbias_en; in proc_hw_cfg()
873 set->qbias_i, set->qbias_p, cfg->qbias_i, cfg->qbias_p); in proc_hw_cfg()
874 set->qbias_i = cfg->qbias_i; in proc_hw_cfg()
880 cfg->flt_str_i, cfg->flt_str_p); in proc_hw_cfg()
881 set->flt_str_i = cfg->flt_str_i; in proc_hw_cfg()
884 memcpy(cfg, set, sizeof(*cfg)); in proc_hw_cfg()
889 MppEncFineTuneCfg *cfg = &enc->cfg->tune; in proc_tune_cfg() local
902 mpp_loge("restore scene mode %d\n", cfg->scene_mode); in proc_tune_cfg()
903 set->scene_mode = cfg->scene_mode; in proc_tune_cfg()
908 mpp_loge("restore motion static switch enable %d\n", cfg->motion_static_switch_enable); in proc_tune_cfg()
909 set->motion_static_switch_enable = cfg->motion_static_switch_enable; in proc_tune_cfg()
914 mpp_loge("restore deblur strength %d\n", cfg->deblur_str); in proc_tune_cfg()
915 set->deblur_str = cfg->deblur_str; in proc_tune_cfg()
920 mpp_loge("restore anti ring strength of I frame %d\n", cfg->atr_str_i); in proc_tune_cfg()
921 set->atr_str_i = cfg->atr_str_i; in proc_tune_cfg()
926 mpp_loge("restore anti ring strength of P frame %d\n", cfg->atr_str_p); in proc_tune_cfg()
927 set->atr_str_p = cfg->atr_str_p; in proc_tune_cfg()
932 mpp_loge("restore anti line strength %d\n", cfg->atl_str); in proc_tune_cfg()
933 set->atl_str = cfg->atl_str; in proc_tune_cfg()
938 mpp_loge("restore lambda idx %d\n", cfg->lambda_idx_p); in proc_tune_cfg()
939 set->lambda_idx_p = cfg->lambda_idx_p; in proc_tune_cfg()
944 mpp_loge("restore I frame lambda idx %d\n", cfg->lambda_idx_i); in proc_tune_cfg()
945 set->lambda_idx_i = cfg->lambda_idx_i; in proc_tune_cfg()
950 mpp_loge("restore anti flick strength %d\n", cfg->atf_str); in proc_tune_cfg()
951 set->atf_str = cfg->atf_str; in proc_tune_cfg()
956 mpp_loge("restore lgt_chg_lvl %d\n", cfg->lgt_chg_lvl); in proc_tune_cfg()
957 set->lgt_chg_lvl = cfg->lgt_chg_lvl; in proc_tune_cfg()
962 mpp_loge("restore static_frm_num %d\n", cfg->static_frm_num); in proc_tune_cfg()
963 set->static_frm_num = cfg->static_frm_num; in proc_tune_cfg()
968 mpp_loge("restore madp16_th %d\n", cfg->madp16_th); in proc_tune_cfg()
969 set->madp16_th = cfg->madp16_th; in proc_tune_cfg()
974 mpp_loge("restore skip16_wgt %d\n", cfg->skip16_wgt); in proc_tune_cfg()
975 set->skip16_wgt = cfg->skip16_wgt; in proc_tune_cfg()
980 mpp_loge("restore skip32_wgt %d\n", cfg->skip32_wgt); in proc_tune_cfg()
981 set->skip32_wgt = cfg->skip32_wgt; in proc_tune_cfg()
998 if (set->scene_mode != cfg->scene_mode || in proc_tune_cfg()
999 set->motion_static_switch_enable != cfg->motion_static_switch_enable || in proc_tune_cfg()
1000 set->deblur_str != cfg->deblur_str) in proc_tune_cfg()
1003 memcpy(cfg, set, sizeof(*cfg)); in proc_tune_cfg()
1008 MppEncH264Cfg *cfg = &enc->cfg->h264; in proc_h264_cfg() local
1021 if (enc->cfg->rc.refresh_en) { in proc_h264_cfg()
1024 if (!enc->cfg->rc.refresh_mode) in proc_h264_cfg()
1025 mb_rows = MPP_ALIGN(enc->cfg->prep.height, 16) / 16; in proc_h264_cfg()
1027 mb_rows = MPP_ALIGN(enc->cfg->prep.width, 16) / 16; in proc_h264_cfg()
1029 enc->cfg->rc.refresh_length = (mb_rows + enc->cfg->rc.refresh_num - 1) / in proc_h264_cfg()
1030 enc->cfg->rc.refresh_num; in proc_h264_cfg()
1031 if (enc->cfg->rc.gop < enc->cfg->rc.refresh_length) in proc_h264_cfg()
1032 enc->cfg->rc.refresh_length = enc->cfg->rc.gop; in proc_h264_cfg()
1065 memcpy(cfg, set, sizeof(*cfg)); in proc_h264_cfg()
1071 MppEncH265Cfg *cfg = &enc->cfg->h265; in proc_h265_cfg() local
1077 if (enc->cfg->rc.refresh_en) { in proc_h265_cfg()
1080 if (!enc->cfg->rc.refresh_mode) in proc_h265_cfg()
1081 mb_rows = MPP_ALIGN(enc->cfg->prep.height, 32) / 32; in proc_h265_cfg()
1083 mb_rows = MPP_ALIGN(enc->cfg->prep.width, 32) / 32; in proc_h265_cfg()
1085 enc->cfg->rc.refresh_length = (mb_rows + enc->cfg->rc.refresh_num - 1) / in proc_h265_cfg()
1086 enc->cfg->rc.refresh_num; in proc_h265_cfg()
1087 if (enc->cfg->rc.gop < enc->cfg->rc.refresh_length) in proc_h265_cfg()
1088 enc->cfg->rc.refresh_length = enc->cfg->rc.gop; in proc_h265_cfg()
1116 memcpy(cfg, set, sizeof(*cfg)); in proc_h265_cfg()
1122 MppEncRcCfg *rc_cfg = &enc->cfg->rc; in proc_jpeg_cfg()
1124 MppEncJpegCfg *cfg = &enc->cfg->jpeg; in proc_jpeg_cfg() local
1204 memcpy(cfg, set, sizeof(*cfg)); in proc_jpeg_cfg()
1208 cfg->update = 1; in proc_jpeg_cfg()
1213 MppEncH265Cfg *cfg = &enc->cfg->h265; in proc_vp8_cfg() local
1222 memcpy(cfg, set, sizeof(*cfg)); in proc_vp8_cfg()
1229 MppEncRefCfg dst = enc->cfg->ref_cfg; in mpp_enc_control_set_ref_cfg()
1236 enc->cfg->ref_cfg = dst; in mpp_enc_control_set_ref_cfg()
1257 MppEncCfgSet *cfg = enc->cfg; in mpp_enc_proc_cfg() local
1280 memcpy(&cfg->base, &set->base, sizeof(cfg->base)); in mpp_enc_proc_cfg()
1289 proc_split_cfg(&cfg->split, &set->split); in mpp_enc_proc_cfg()
1316 if (enc->cfg->rc.refresh_en) in mpp_enc_proc_cfg()
1317 mpp_enc_refs_set_refresh_length(enc->refs, enc->cfg->rc.refresh_length); in mpp_enc_proc_cfg()
1429 MppEncOSDPltCfg *dst = &enc->cfg->plt_cfg; in mpp_enc_proc_cfg()
1538 static void set_rc_cfg(RcCfg *cfg, MppEncCfgSet *cfg_set) in set_rc_cfg() argument
1546 cfg->width = prep->width; in set_rc_cfg()
1547 cfg->height = prep->height; in set_rc_cfg()
1551 cfg->mode = RC_CBR; in set_rc_cfg()
1554 cfg->mode = RC_VBR; in set_rc_cfg()
1557 cfg->mode = RC_AVBR; in set_rc_cfg()
1560 cfg->mode = RC_FIXQP; in set_rc_cfg()
1563 cfg->mode = RC_SMT; in set_rc_cfg()
1566 cfg->mode = RC_SE; in set_rc_cfg()
1569 cfg->mode = RC_AVBR; in set_rc_cfg()
1573 cfg->fps.fps_in_flex = rc->fps_in_flex; in set_rc_cfg()
1574 cfg->fps.fps_in_num = rc->fps_in_num; in set_rc_cfg()
1575 cfg->fps.fps_in_denom = rc->fps_in_denom; in set_rc_cfg()
1576 cfg->fps.fps_out_flex = rc->fps_out_flex; in set_rc_cfg()
1577 cfg->fps.fps_out_num = rc->fps_out_num; in set_rc_cfg()
1578 cfg->fps.fps_out_denom = rc->fps_out_denom; in set_rc_cfg()
1579 cfg->igop = rc->gop; in set_rc_cfg()
1580 cfg->max_i_bit_prop = rc->max_i_prop; in set_rc_cfg()
1581 cfg->min_i_bit_prop = rc->min_i_prop; in set_rc_cfg()
1582 cfg->init_ip_ratio = rc->init_ip_ratio; in set_rc_cfg()
1584 cfg->bps_target = rc->bps_target; in set_rc_cfg()
1585 cfg->bps_max = rc->bps_max; in set_rc_cfg()
1586 cfg->bps_min = rc->bps_min; in set_rc_cfg()
1587 cfg->scene_mode = cfg_set->tune.scene_mode; in set_rc_cfg()
1588 cfg->rc_container = cfg_set->tune.rc_container; in set_rc_cfg()
1590 cfg->hier_qp_cfg.hier_qp_en = rc->hier_qp_en; in set_rc_cfg()
1591 memcpy(cfg->hier_qp_cfg.hier_frame_num, rc->hier_frame_num, sizeof(rc->hier_frame_num)); in set_rc_cfg()
1592 memcpy(cfg->hier_qp_cfg.hier_qp_delta, rc->hier_qp_delta, sizeof(rc->hier_qp_delta)); in set_rc_cfg()
1595 cfg->stats_time = rc->stats_time ? rc->stats_time : 3; in set_rc_cfg()
1596 cfg->stats_time = mpp_clip(cfg->stats_time, 1, 60); in set_rc_cfg()
1603 cfg->init_quality = rc->qp_init; in set_rc_cfg()
1604 cfg->max_quality = rc->qp_max; in set_rc_cfg()
1605 cfg->min_quality = rc->qp_min; in set_rc_cfg()
1606 cfg->max_i_quality = rc->qp_max_i ? rc->qp_max_i : rc->qp_max; in set_rc_cfg()
1607 cfg->min_i_quality = rc->qp_min_i ? rc->qp_min_i : rc->qp_min; in set_rc_cfg()
1608 cfg->i_quality_delta = rc->qp_delta_ip; in set_rc_cfg()
1609 cfg->vi_quality_delta = rc->qp_delta_vi; in set_rc_cfg()
1610 cfg->fqp_min_p = rc->fqp_min_p == INT_MAX ? cfg->min_quality : rc->fqp_min_p; in set_rc_cfg()
1611 cfg->fqp_min_i = rc->fqp_min_i == INT_MAX ? cfg->min_i_quality : rc->fqp_min_i; in set_rc_cfg()
1612 cfg->fqp_max_p = rc->fqp_max_p == INT_MAX ? cfg->max_quality : rc->fqp_max_p; in set_rc_cfg()
1613 cfg->fqp_max_i = rc->fqp_max_i == INT_MAX ? cfg->max_i_quality : rc->fqp_max_i; in set_rc_cfg()
1618 cfg->init_quality = 100 - jpeg->q_factor; in set_rc_cfg()
1619 cfg->max_quality = 100 - jpeg->qf_max; in set_rc_cfg()
1620 cfg->min_quality = 100 - jpeg->qf_min; in set_rc_cfg()
1621 cfg->max_i_quality = 100 - jpeg->qf_max; in set_rc_cfg()
1622 cfg->min_i_quality = 100 - jpeg->qf_min; in set_rc_cfg()
1623 cfg->fqp_min_i = 100 - jpeg->qf_max; in set_rc_cfg()
1624 cfg->fqp_max_i = 100 - jpeg->qf_min; in set_rc_cfg()
1625 cfg->fqp_min_p = 100 - jpeg->qf_max; in set_rc_cfg()
1626 cfg->fqp_max_p = 100 - jpeg->qf_min; in set_rc_cfg()
1633 cfg->layer_bit_prop[0] = 256; in set_rc_cfg()
1634 cfg->layer_bit_prop[1] = 0; in set_rc_cfg()
1635 cfg->layer_bit_prop[2] = 0; in set_rc_cfg()
1636 cfg->layer_bit_prop[3] = 0; in set_rc_cfg()
1638 cfg->max_reencode_times = rc->max_reenc_times; in set_rc_cfg()
1639 cfg->drop_mode = rc->drop_mode; in set_rc_cfg()
1640 cfg->drop_thd = rc->drop_threshold; in set_rc_cfg()
1641 cfg->drop_gap = rc->drop_gap; in set_rc_cfg()
1643 cfg->super_cfg.rc_priority = rc->rc_priority; in set_rc_cfg()
1644 cfg->super_cfg.super_mode = rc->super_mode; in set_rc_cfg()
1645 cfg->super_cfg.super_i_thd = rc->super_i_thd; in set_rc_cfg()
1646 cfg->super_cfg.super_p_thd = rc->super_p_thd; in set_rc_cfg()
1648 cfg->debreath_cfg.enable = rc->debreath_en; in set_rc_cfg()
1649 cfg->debreath_cfg.strength = rc->debre_strength; in set_rc_cfg()
1651 cfg->refresh_len = rc->refresh_length; in set_rc_cfg()
1654 cfg->vgop = info->st_gop; in set_rc_cfg()
1655 if (cfg->vgop >= rc->fps_out_num / rc->fps_out_denom && in set_rc_cfg()
1656 cfg->vgop < cfg->igop ) { in set_rc_cfg()
1657 cfg->gop_mode = SMART_P; in set_rc_cfg()
1658 if (!cfg->vi_quality_delta) in set_rc_cfg()
1659 cfg->vi_quality_delta = 2; in set_rc_cfg()
1665 name_of_rc_mode[cfg->mode], in set_rc_cfg()
1667 cfg->fps.fps_in_flex ? "flex" : "fix", in set_rc_cfg()
1668 cfg->fps.fps_in_num, cfg->fps.fps_in_denom, in set_rc_cfg()
1669 cfg->fps.fps_out_flex ? "flex" : "fix", in set_rc_cfg()
1670 cfg->fps.fps_out_num, cfg->fps.fps_out_denom, in set_rc_cfg()
1671 cfg->igop, cfg->vgop); in set_rc_cfg()
1706 MppEncCfgSet *cfg = enc->cfg; in mpp_enc_proc_rc_update() local
1712 set_rc_cfg(&usr_cfg, cfg); in mpp_enc_proc_rc_update()
1774 MppEncPrepCfg *prep = &enc->cfg->prep; in mpp_enc_check_pkt_buf()
1868 if (!enc->support_hw_deflicker || !enc->cfg->rc.debreath_en) in mpp_enc_rc_info_backup()
2019 if (enc->cfg->rc.refresh_en && frm->is_i_recovery && !frm->is_idr) in mpp_enc_add_sw_header()
2037 &enc->cfg->rc.refresh_length, 0); in mpp_enc_add_sw_header()
2090 if (enc->support_hw_deflicker && enc->cfg->rc.debreath_en) { in mpp_enc_normal()
2777 while (frm->reencode && frm->reencode_times < enc->cfg->rc.max_reenc_times) { in try_proc_normal_task()
3107 MppEncPrepCfg *prep = &enc->cfg->prep; in check_async_pkt_buf()
3413 if (enc->support_hw_deflicker && enc->cfg->rc.debreath_en) { in proc_async_task()