Bläddra i källkod

Merge "video: driver: update metadata buffer size"

qctecmdr 4 år sedan
förälder
incheckning
4ab25dd749
2 ändrade filer med 8 tillägg och 1 borttagningar
  1. 7 1
      driver/vidc/src/msm_venc.c
  2. 1 0
      driver/vidc/src/msm_vidc_buffer.c

+ 7 - 1
driver/vidc/src/msm_venc.c

@@ -1088,6 +1088,9 @@ int msm_venc_s_fmt_output(struct msm_vidc_inst *inst, struct v4l2_format *f)
 		fmt->fmt.pix_mp.plane_fmt[0].sizeimage;
 	memcpy(f, fmt, sizeof(struct v4l2_format));
 
+	/* reset metadata buffer size with updated resolution*/
+	msm_vidc_update_meta_port_settings(inst);
+
 	return rc;
 }
 
@@ -1222,6 +1225,9 @@ static int msm_venc_s_fmt_input(struct msm_vidc_inst *inst, struct v4l2_format *
 	}
 	memcpy(f, fmt, sizeof(struct v4l2_format));
 
+	/* reset metadata buffer size with updated resolution*/
+	msm_vidc_update_meta_port_settings(inst);
+
 	return rc;
 }
 
@@ -1242,7 +1248,7 @@ static int msm_venc_s_fmt_input_meta(struct msm_vidc_inst *inst, struct v4l2_for
 	fmt->fmt.meta.dataformat = V4L2_META_FMT_VIDC;
 	if (is_input_meta_enabled(inst)) {
 		fmt->fmt.meta.buffersize = call_session_op(core,
-			buffer_size, inst, MSM_VIDC_BUF_OUTPUT_META);
+			buffer_size, inst, MSM_VIDC_BUF_INPUT_META);
 		inst->buffers.input_meta.min_count =
 				inst->buffers.input.min_count;
 		inst->buffers.input_meta.extra_count =

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

@@ -382,6 +382,7 @@ u32 msm_vidc_encoder_input_meta_size(struct msm_vidc_inst *inst)
 		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;
 }