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:

committed by
Gerrit - the friendly Code Review server

szülő
5dcf0adb92
commit
552670ad6b
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
Reference in New Issue
Block a user