Lines Matching refs:impl

638     MppEncRoiImpl *impl = NULL;  in mpp_enc_roi_init()  local
659 impl = mpp_calloc(MppEncRoiImpl, 1); in mpp_enc_roi_init()
660 if (!impl) { in mpp_enc_roi_init()
665 impl->w = w; in mpp_enc_roi_init()
666 impl->h = h; in mpp_enc_roi_init()
667 impl->type = type; in mpp_enc_roi_init()
668 impl->roi_type = roi_type; in mpp_enc_roi_init()
669 impl->max_count = count; in mpp_enc_roi_init()
670 impl->regions = mpp_calloc(RoiRegionCfg, count); in mpp_enc_roi_init()
674 RK_S32 mb_w = MPP_ALIGN(impl->w, 16) / 16; in mpp_enc_roi_init()
675 RK_S32 mb_h = MPP_ALIGN(impl->h, 16) / 16; in mpp_enc_roi_init()
681 impl->base_cfg_size = stride_h * stride_v * sizeof(Vepu541RoiCfg); in mpp_enc_roi_init()
682 mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION); in mpp_enc_roi_init()
684 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); in mpp_enc_roi_init()
685 if (!impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_init()
688 impl->dst_base = mpp_buffer_get_ptr(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_init()
692 impl->tmp = mpp_malloc(Vepu541RoiCfg, stride_h * stride_v); in mpp_enc_roi_init()
693 if (!impl->tmp) in mpp_enc_roi_init()
704 impl->base_cfg_size = ctu_w * ctu_h * 64; in mpp_enc_roi_init()
705 impl->qp_cfg_size = ctu_w * ctu_h * 256; in mpp_enc_roi_init()
706 impl->amv_cfg_size = ctu_w * ctu_h * 512; in mpp_enc_roi_init()
707 impl->mv_cfg_size = ctu_w * ctu_h * 4; in mpp_enc_roi_init()
708 impl->cu_map = mpp_calloc(RK_U8, ctu_w * ctu_h); in mpp_enc_roi_init()
709 impl->cu_size = ctu_w * ctu_h; in mpp_enc_roi_init()
714 impl->base_cfg_size = mb_w * mb_h * 8; in mpp_enc_roi_init()
715 impl->qp_cfg_size = mb_w * mb_h * 2; in mpp_enc_roi_init()
716 impl->amv_cfg_size = mb_w * mb_h / 4; in mpp_enc_roi_init()
717 impl->mv_cfg_size = mb_w * mb_h * 96 / 4; in mpp_enc_roi_init()
718 impl->cu_map = mpp_calloc(RK_U8, mb_w * mb_h); in mpp_enc_roi_init()
719 impl->cu_size = mb_w * mb_h; in mpp_enc_roi_init()
724 impl->roi_cfg.roi_qp_en = 1; in mpp_enc_roi_init()
725 mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION); in mpp_enc_roi_init()
726 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); in mpp_enc_roi_init()
727 if (!impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_init()
730 impl->dst_base = mpp_buffer_get_ptr(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_init()
731 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.qp_cfg_buf, impl->qp_cfg_size); in mpp_enc_roi_init()
732 if (!impl->roi_cfg.qp_cfg_buf) { in mpp_enc_roi_init()
735 impl->dst_qp = mpp_buffer_get_ptr(impl->roi_cfg.qp_cfg_buf); in mpp_enc_roi_init()
736 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.amv_cfg_buf, impl->amv_cfg_size); in mpp_enc_roi_init()
737 if (!impl->roi_cfg.amv_cfg_buf) { in mpp_enc_roi_init()
740 impl->dst_amv = mpp_buffer_get_ptr(impl->roi_cfg.amv_cfg_buf); in mpp_enc_roi_init()
741 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.mv_cfg_buf, impl->mv_cfg_size); in mpp_enc_roi_init()
742 if (!impl->roi_cfg.mv_cfg_buf) { in mpp_enc_roi_init()
745 impl->dst_mv = mpp_buffer_get_ptr(impl->roi_cfg.mv_cfg_buf); in mpp_enc_roi_init()
749 RK_S32 mb_w = MPP_ALIGN(impl->w, 16) / 16; in mpp_enc_roi_init()
750 RK_S32 mb_h = MPP_ALIGN(impl->h, 16) / 16; in mpp_enc_roi_init()
754 impl->tmp = mpp_malloc(Vepu541RoiCfg, stride_h * stride_v); in mpp_enc_roi_init()
755 if (!impl->tmp) in mpp_enc_roi_init()
761 impl->legacy_roi_region = mpp_calloc(MppEncROIRegion, count); in mpp_enc_roi_init()
763 mpp_assert(impl->legacy_roi_region); in mpp_enc_roi_init()
764 impl->legacy_roi_cfg.regions = impl->legacy_roi_region; in mpp_enc_roi_init()
773 if (impl) { in mpp_enc_roi_init()
774 mpp_enc_roi_deinit(impl); in mpp_enc_roi_init()
775 impl = NULL; in mpp_enc_roi_init()
779 *ctx = impl; in mpp_enc_roi_init()
785 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_deinit() local
787 if (!impl) in mpp_enc_roi_deinit()
790 if (impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_deinit()
791 mpp_buffer_put(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_deinit()
792 impl->roi_cfg.base_cfg_buf = NULL; in mpp_enc_roi_deinit()
795 if (impl->roi_cfg.qp_cfg_buf) { in mpp_enc_roi_deinit()
796 mpp_buffer_put(impl->roi_cfg.qp_cfg_buf); in mpp_enc_roi_deinit()
797 impl->roi_cfg.qp_cfg_buf = NULL; in mpp_enc_roi_deinit()
799 if (impl->roi_cfg.amv_cfg_buf) { in mpp_enc_roi_deinit()
800 mpp_buffer_put(impl->roi_cfg.amv_cfg_buf); in mpp_enc_roi_deinit()
801 impl->roi_cfg.amv_cfg_buf = NULL; in mpp_enc_roi_deinit()
803 if (impl->roi_cfg.mv_cfg_buf) { in mpp_enc_roi_deinit()
804 mpp_buffer_put(impl->roi_cfg.mv_cfg_buf); in mpp_enc_roi_deinit()
805 impl->roi_cfg.mv_cfg_buf = NULL; in mpp_enc_roi_deinit()
808 if (impl->roi_grp) { in mpp_enc_roi_deinit()
809 mpp_buffer_group_put(impl->roi_grp); in mpp_enc_roi_deinit()
810 impl->roi_grp = NULL; in mpp_enc_roi_deinit()
812 MPP_FREE(impl->cu_map); in mpp_enc_roi_deinit()
813 MPP_FREE(impl->legacy_roi_region); in mpp_enc_roi_deinit()
814 MPP_FREE(impl->regions); in mpp_enc_roi_deinit()
815 MPP_FREE(impl->tmp); in mpp_enc_roi_deinit()
817 MPP_FREE(impl); in mpp_enc_roi_deinit()
823 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_add_region() local
825 if (impl->count >= impl->max_count) { in mpp_enc_roi_add_region()
826 mpp_err("can not add more region with max %d\n", impl->max_count); in mpp_enc_roi_add_region()
830 memcpy(impl->regions + impl->count, region, sizeof(*impl->regions)); in mpp_enc_roi_add_region()
831 impl->count++; in mpp_enc_roi_add_region()
838 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_setup_meta() local
840 switch (impl->roi_type) { in mpp_enc_roi_setup_meta()
842 switch (impl->type) { in mpp_enc_roi_setup_meta()
844 gen_vepu54x_roi(impl, impl->dst_base); in mpp_enc_roi_setup_meta()
847 gen_vepu54x_roi(impl, impl->tmp); in mpp_enc_roi_setup_meta()
848 vepu54x_h265_set_roi(impl->dst_base, impl->tmp, impl->w, impl->h); in mpp_enc_roi_setup_meta()
854 mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); in mpp_enc_roi_setup_meta()
857 gen_vepu54x_roi(impl, impl->tmp); in mpp_enc_roi_setup_meta()
859 switch (impl->type) { in mpp_enc_roi_setup_meta()
861 gen_vepu580_roi_h264(impl); in mpp_enc_roi_setup_meta()
864 gen_vepu580_roi_h265(impl); in mpp_enc_roi_setup_meta()
870 mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); in mpp_enc_roi_setup_meta()
873 MppEncROIRegion *region = impl->legacy_roi_region; in mpp_enc_roi_setup_meta()
874 MppEncROICfg *roi_cfg = &impl->legacy_roi_cfg; in mpp_enc_roi_setup_meta()
875 RoiRegionCfg *regions = impl->regions; in mpp_enc_roi_setup_meta()
878 for (i = 0; i < impl->count; i++) { in mpp_enc_roi_setup_meta()
891 roi_cfg->number = impl->count; in mpp_enc_roi_setup_meta()
900 impl->count = 0; in mpp_enc_roi_setup_meta()