فهرست منبع

video: driver: Add support to set default fps

Add support to set default fps to video fw.

Change-Id: I5074b5379c8bca273e098a3375f2c949b0656ae8
Signed-off-by: Akshata Sahukar <[email protected]>
Akshata Sahukar 4 سال پیش
والد
کامیت
4387226f98
3فایلهای تغییر یافته به همراه18 افزوده شده و 13 حذف شده
  1. 6 1
      driver/platform/waipio/src/msm_vidc_waipio.c
  2. 6 6
      driver/vidc/src/msm_vdec.c
  3. 6 6
      driver/vidc/src/msm_venc.c

+ 6 - 1
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -178,7 +178,12 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
 
 	{FRAME_RATE, ENC, CODECS_ALL,
 		(MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
-		1, (DEFAULT_FPS << 16)},
+		1, (DEFAULT_FPS << 16),
+		0,
+		HFI_PROP_FRAME_RATE,
+		CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
+		{0}, {0},
+		NULL, msm_vidc_set_q16},
 
 	{FRAME_RATE, DEC, CODECS_ALL,
 		(MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),

+ 6 - 6
driver/vidc/src/msm_vdec.c

@@ -2091,20 +2091,20 @@ int msm_vdec_s_param(struct msm_vidc_inst *inst,
 
 	if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
 		timeperframe = &s_parm->parm.output.timeperframe;
-		max_rate = capability->cap[FRAME_RATE].max;
-		default_rate = capability->cap[FRAME_RATE].value;
+		max_rate = capability->cap[FRAME_RATE].max >> 16;
+		default_rate = capability->cap[FRAME_RATE].value >> 16;
 		is_frame_rate = true;
 	} else {
 		timeperframe = &s_parm->parm.capture.timeperframe;
-		max_rate = capability->cap[OPERATING_RATE].value;
-		default_rate = capability->cap[OPERATING_RATE].value;
+		max_rate = capability->cap[OPERATING_RATE].max;
+		default_rate = capability->cap[OPERATING_RATE].value >> 16;
 	}
 
 	if (!timeperframe->denominator || !timeperframe->numerator) {
 		i_vpr_e(inst,
 			"%s: invalid rate for type %u\n",
 			__func__, s_parm->type);
-		input_rate = default_rate >> 16;
+		input_rate = default_rate;
 		goto set_default;
 	}
 
@@ -2124,7 +2124,7 @@ int msm_vdec_s_param(struct msm_vidc_inst *inst,
 	/* Check max allowed rate */
 	if (input_rate > max_rate) {
 		i_vpr_e(inst,
-			"%s: Unsupported rate %u, max_fps %u, type: %u\n",
+			"%s: Unsupported rate %llu, max_fps %u, type: %u\n",
 			__func__, input_rate, max_rate, s_parm->type);
 		rc = -ENOTSUPP;
 		goto exit;

+ 6 - 6
driver/vidc/src/msm_venc.c

@@ -1547,19 +1547,19 @@ int msm_venc_s_param(struct msm_vidc_inst *inst,
 	if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
 		timeperframe = &s_parm->parm.output.timeperframe;
 		max_rate = capability->cap[OPERATING_RATE].max;
-		default_rate = capability->cap[OPERATING_RATE].value;
+		default_rate = capability->cap[OPERATING_RATE].value >> 16;
 	} else {
 		timeperframe = &s_parm->parm.capture.timeperframe;
 		is_frame_rate = true;
-		max_rate = capability->cap[FRAME_RATE].value;
-		default_rate = capability->cap[FRAME_RATE].value;
+		max_rate = capability->cap[FRAME_RATE].max >> 16;
+		default_rate = capability->cap[FRAME_RATE].value >> 16;
 	}
 
 	if (!timeperframe->denominator || !timeperframe->numerator) {
 		i_vpr_e(inst,
 			"%s: invalid rate for type %u\n",
 			__func__, s_parm->type);
-		input_rate = default_rate >> 16;
+		input_rate = default_rate;
 		goto set_default;
 	}
 
@@ -1579,7 +1579,7 @@ int msm_venc_s_param(struct msm_vidc_inst *inst,
 	/* Check max allowed rate */
 	if (input_rate > max_rate) {
 		i_vpr_e(inst,
-			"%s: Unsupported rate %u, max_fps %u, type: %u\n",
+			"%s: Unsupported rate %llu, max_fps %u, type: %u\n",
 			__func__, input_rate, max_rate, s_parm->type);
 		rc = -ENOTSUPP;
 		goto exit;
@@ -1598,7 +1598,7 @@ set_default:
 	}
 
 	/*
-	 * In static case, frame rate is set during via
+	 * In static case, frame rate is set via
 	 * inst database set function mentioned in
 	 * FRAME_RATE cap id.
 	 * In dynamic case, frame rate is set like below.