소스 검색

video: driver: input metadata buffer size changes

use default 16kb as input metadata buffer size.
Amend buffer size if ROi metadata is enabled.

Change-Id: I7b07c432dcf27f83096f07be03537f02db9114dd
Signed-off-by: Darshana Patil <[email protected]>
Darshana Patil 3 년 전
부모
커밋
2f361417ab
1개의 변경된 파일27개의 추가작업 그리고 1개의 파일을 삭제
  1. 27 1
      driver/vidc/src/msm_vidc_buffer.c

+ 27 - 1
driver/vidc/src/msm_vidc_buffer.c

@@ -412,7 +412,33 @@ static inline u32 ROI_METADATA_SIZE(
 
 u32 msm_vidc_encoder_input_meta_size(struct msm_vidc_inst *inst)
 {
-	return ENCODE_INPUT_METADATA_SIZE;
+	u32 size = 0;
+	u32 lcu_size = 0;
+	struct v4l2_format *f;
+
+	if (!inst || !inst->capabilities) {
+		d_vpr_e("%s: invalid params\n", __func__);
+		return 0;
+	}
+
+	size = MSM_VIDC_METADATA_SIZE;
+
+	if (inst->capabilities->cap[INPUT_META_VIA_REQUEST].value)
+		return ENCODE_INPUT_METADATA_SIZE;
+
+	if (inst->capabilities->cap[META_ROI_INFO].value) {
+		lcu_size = 16;
+
+		f = &inst->fmts[OUTPUT_PORT];
+		if (f->fmt.pix_mp.pixelformat == V4L2_PIX_FMT_HEVC)
+			lcu_size = 32;
+
+		f = &inst->fmts[INPUT_PORT];
+		size += ROI_METADATA_SIZE(f->fmt.pix_mp.width,
+			f->fmt.pix_mp.height, lcu_size);
+		size = ALIGN(size, SZ_4K);
+	}
+	return size;
 }
 
 u32 msm_vidc_encoder_output_meta_size(struct msm_vidc_inst *inst)