video: driver: encoder delay start: CSC

Introduce a control for client to enable or disable
csc. Disable csc for 10-bit encoding based on color format.

Change-Id: Ia49324332ce9b05b6f1a1283fa758638a8cc3ab8
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
This commit is contained in:
Darshana Patil
2023-02-06 16:39:55 -08:00
committed by Gerrit - the friendly Code Review server
szülő 5dcf0adb92
commit 552670ad6b
6 fájl változott, egészen pontosan 45 új sor hozzáadva és 21 régi sor törölve

Fájl megtekintése

@@ -16,5 +16,6 @@ int msm_vidc_set_ir_period(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_signal_color_info(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_adjust_csc(void *instance, struct v4l2_ctrl *ctrl);
#endif

Fájl megtekintése

@@ -277,3 +277,33 @@ int msm_vidc_set_signal_color_info(void *instance,
return rc;
}
int msm_vidc_adjust_csc(void *instance, struct v4l2_ctrl *ctrl)
{
struct msm_vidc_inst_capability *capability;
s32 adjusted_value;
s32 pix_fmt = -1;
struct msm_vidc_inst *inst = (struct msm_vidc_inst *) instance;
if (!inst || !inst->capabilities) {
d_vpr_e("%s: invalid params\n", __func__);
return -EINVAL;
}
capability = inst->capabilities;
if (is_decode_session(inst))
return 0;
adjusted_value = ctrl ? ctrl->val : capability->cap[CSC].value;
if (msm_vidc_get_parent_value(inst, CSC, PIX_FMTS,
&pix_fmt, __func__))
return -EINVAL;
/* disable csc for 10-bit encoding */
if (is_10bit_colorformat(pix_fmt))
adjusted_value = 0;
msm_vidc_update_cap_value(inst, CSC, adjusted_value, __func__);
return 0;
}