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()
676 RK_U32 ctu_w = MPP_ALIGN(impl->w, 64) / 64; in mpp_enc_roi_init()
677 RK_U32 ctu_h = MPP_ALIGN(impl->w, 64) / 64; in mpp_enc_roi_init()
683 impl->base_cfg_size = stride_h * stride_v * sizeof(Vepu541RoiCfg); in mpp_enc_roi_init()
684 … mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION | MPP_BUFFER_FLAGS_CACHABLE); in mpp_enc_roi_init()
686 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); in mpp_enc_roi_init()
687 if (!impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_init()
690 impl->dst_base = mpp_buffer_get_ptr(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_init()
694 impl->tmp = mpp_malloc(Vepu541RoiCfg, stride_h * stride_v); in mpp_enc_roi_init()
695 impl->cu_map = mpp_calloc(RK_U8, ctu_w * ctu_h); in mpp_enc_roi_init()
696 impl->cu_size = ctu_w * ctu_h; in mpp_enc_roi_init()
697 if (!impl->tmp || !impl->cu_map) in mpp_enc_roi_init()
700 impl->cu_map = mpp_calloc(RK_U8, mb_w * mb_h); in mpp_enc_roi_init()
701 impl->cu_size = mb_w * mb_h; in mpp_enc_roi_init()
702 if (!impl->cu_map) in mpp_enc_roi_init()
713 impl->base_cfg_size = ctu_w * ctu_h * 64; in mpp_enc_roi_init()
714 impl->qp_cfg_size = ctu_w * ctu_h * 256; in mpp_enc_roi_init()
715 impl->amv_cfg_size = ctu_w * ctu_h * 512; in mpp_enc_roi_init()
716 impl->mv_cfg_size = ctu_w * ctu_h * 4; in mpp_enc_roi_init()
717 impl->cu_map = mpp_calloc(RK_U8, ctu_w * ctu_h); in mpp_enc_roi_init()
718 impl->cu_size = ctu_w * ctu_h; in mpp_enc_roi_init()
723 impl->base_cfg_size = mb_w * mb_h * 8; in mpp_enc_roi_init()
724 impl->qp_cfg_size = mb_w * mb_h * 2; in mpp_enc_roi_init()
725 impl->amv_cfg_size = mb_w * mb_h / 4; in mpp_enc_roi_init()
726 impl->mv_cfg_size = mb_w * mb_h * 96 / 4; in mpp_enc_roi_init()
727 impl->cu_map = mpp_calloc(RK_U8, mb_w * mb_h); in mpp_enc_roi_init()
728 impl->cu_size = mb_w * mb_h; in mpp_enc_roi_init()
733 impl->roi_cfg.roi_qp_en = 1; in mpp_enc_roi_init()
734 … mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION | MPP_BUFFER_FLAGS_CACHABLE); in mpp_enc_roi_init()
735 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); in mpp_enc_roi_init()
736 if (!impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_init()
739 impl->dst_base = mpp_buffer_get_ptr(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_init()
740 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.qp_cfg_buf, impl->qp_cfg_size); in mpp_enc_roi_init()
741 if (!impl->roi_cfg.qp_cfg_buf) { in mpp_enc_roi_init()
744 impl->dst_qp = mpp_buffer_get_ptr(impl->roi_cfg.qp_cfg_buf); in mpp_enc_roi_init()
745 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.amv_cfg_buf, impl->amv_cfg_size); in mpp_enc_roi_init()
746 if (!impl->roi_cfg.amv_cfg_buf) { in mpp_enc_roi_init()
749 impl->dst_amv = mpp_buffer_get_ptr(impl->roi_cfg.amv_cfg_buf); in mpp_enc_roi_init()
750 mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.mv_cfg_buf, impl->mv_cfg_size); in mpp_enc_roi_init()
751 if (!impl->roi_cfg.mv_cfg_buf) { in mpp_enc_roi_init()
754 impl->dst_mv = mpp_buffer_get_ptr(impl->roi_cfg.mv_cfg_buf); in mpp_enc_roi_init()
758 RK_S32 mb_w = MPP_ALIGN(impl->w, 16) / 16; in mpp_enc_roi_init()
759 RK_S32 mb_h = MPP_ALIGN(impl->h, 16) / 16; in mpp_enc_roi_init()
763 impl->tmp = mpp_malloc(Vepu541RoiCfg, stride_h * stride_v); in mpp_enc_roi_init()
764 if (!impl->tmp) in mpp_enc_roi_init()
770 impl->legacy_roi_region = mpp_calloc(MppEncROIRegion, count); in mpp_enc_roi_init()
772 mpp_assert(impl->legacy_roi_region); in mpp_enc_roi_init()
773 impl->legacy_roi_cfg.regions = impl->legacy_roi_region; in mpp_enc_roi_init()
782 if (impl) { in mpp_enc_roi_init()
783 mpp_enc_roi_deinit(impl); in mpp_enc_roi_init()
784 impl = NULL; in mpp_enc_roi_init()
788 *ctx = impl; in mpp_enc_roi_init()
794 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_deinit() local
796 if (!impl) in mpp_enc_roi_deinit()
799 if (impl->roi_cfg.base_cfg_buf) { in mpp_enc_roi_deinit()
800 mpp_buffer_put(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_deinit()
801 impl->roi_cfg.base_cfg_buf = NULL; in mpp_enc_roi_deinit()
804 if (impl->roi_cfg.qp_cfg_buf) { in mpp_enc_roi_deinit()
805 mpp_buffer_put(impl->roi_cfg.qp_cfg_buf); in mpp_enc_roi_deinit()
806 impl->roi_cfg.qp_cfg_buf = NULL; in mpp_enc_roi_deinit()
808 if (impl->roi_cfg.amv_cfg_buf) { in mpp_enc_roi_deinit()
809 mpp_buffer_put(impl->roi_cfg.amv_cfg_buf); in mpp_enc_roi_deinit()
810 impl->roi_cfg.amv_cfg_buf = NULL; in mpp_enc_roi_deinit()
812 if (impl->roi_cfg.mv_cfg_buf) { in mpp_enc_roi_deinit()
813 mpp_buffer_put(impl->roi_cfg.mv_cfg_buf); in mpp_enc_roi_deinit()
814 impl->roi_cfg.mv_cfg_buf = NULL; in mpp_enc_roi_deinit()
817 if (impl->roi_grp) { in mpp_enc_roi_deinit()
818 mpp_buffer_group_put(impl->roi_grp); in mpp_enc_roi_deinit()
819 impl->roi_grp = NULL; in mpp_enc_roi_deinit()
821 MPP_FREE(impl->cu_map); in mpp_enc_roi_deinit()
822 MPP_FREE(impl->legacy_roi_region); in mpp_enc_roi_deinit()
823 MPP_FREE(impl->regions); in mpp_enc_roi_deinit()
824 MPP_FREE(impl->tmp); in mpp_enc_roi_deinit()
826 MPP_FREE(impl); in mpp_enc_roi_deinit()
832 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_add_region() local
834 if (impl->count >= impl->max_count) { in mpp_enc_roi_add_region()
835 mpp_err("can not add more region with max %d\n", impl->max_count); in mpp_enc_roi_add_region()
839 memcpy(impl->regions + impl->count, region, sizeof(*impl->regions)); in mpp_enc_roi_add_region()
840 impl->count++; in mpp_enc_roi_add_region()
847 MppEncRoiImpl *impl = (MppEncRoiImpl *)ctx; in mpp_enc_roi_setup_meta() local
849 switch (impl->roi_type) { in mpp_enc_roi_setup_meta()
851 switch (impl->type) { in mpp_enc_roi_setup_meta()
853 gen_vepu54x_roi(impl, impl->dst_base); in mpp_enc_roi_setup_meta()
856 gen_vepu54x_roi(impl, impl->tmp); in mpp_enc_roi_setup_meta()
857 vepu54x_h265_set_roi(impl->dst_base, impl->tmp, impl->w, impl->h); in mpp_enc_roi_setup_meta()
863 mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); in mpp_enc_roi_setup_meta()
864 mpp_buffer_sync_ro_end(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_setup_meta()
867 gen_vepu54x_roi(impl, impl->tmp); in mpp_enc_roi_setup_meta()
869 switch (impl->type) { in mpp_enc_roi_setup_meta()
871 gen_vepu580_roi_h264(impl); in mpp_enc_roi_setup_meta()
874 gen_vepu580_roi_h265(impl); in mpp_enc_roi_setup_meta()
880 mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); in mpp_enc_roi_setup_meta()
881 mpp_buffer_sync_ro_end(impl->roi_cfg.base_cfg_buf); in mpp_enc_roi_setup_meta()
882 mpp_buffer_sync_ro_end(impl->roi_cfg.qp_cfg_buf); in mpp_enc_roi_setup_meta()
885 MppEncROIRegion *region = impl->legacy_roi_region; in mpp_enc_roi_setup_meta()
886 MppEncROICfg *roi_cfg = &impl->legacy_roi_cfg; in mpp_enc_roi_setup_meta()
887 RoiRegionCfg *regions = impl->regions; in mpp_enc_roi_setup_meta()
890 for (i = 0; i < impl->count; i++) { in mpp_enc_roi_setup_meta()
903 roi_cfg->number = impl->count; in mpp_enc_roi_setup_meta()
912 impl->count = 0; in mpp_enc_roi_setup_meta()