media: vivid: Add support to the CSC API
The CSC API (Colorspace conversion) allows userspace to try to configure the colorspace, transfer function, Y'CbCr/HSV encoding and the quantization for capture devices. This patch adds support to the CSC API in vivid. Using the CSC API, userspace is allowed to do the following: - Set the colorspace. - Set the xfer_func. - Set the ycbcr_enc function for YUV formats. - Set the hsv_enc function for HSV formats - Set the quantization for YUV and RGB formats. Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
b38c73ca1c
commit
2f49146349
@@ -539,4 +539,33 @@ static inline void v4l2_buffer_set_timestamp(struct v4l2_buffer *buf,
|
||||
buf->timestamp.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
|
||||
}
|
||||
|
||||
static inline bool v4l2_is_colorspace_valid(__u32 colorspace)
|
||||
{
|
||||
return colorspace > V4L2_COLORSPACE_DEFAULT &&
|
||||
colorspace <= V4L2_COLORSPACE_DCI_P3;
|
||||
}
|
||||
|
||||
static inline bool v4l2_is_xfer_func_valid(__u32 xfer_func)
|
||||
{
|
||||
return xfer_func > V4L2_XFER_FUNC_DEFAULT &&
|
||||
xfer_func <= V4L2_XFER_FUNC_SMPTE2084;
|
||||
}
|
||||
|
||||
static inline bool v4l2_is_ycbcr_enc_valid(__u8 ycbcr_enc)
|
||||
{
|
||||
return ycbcr_enc > V4L2_YCBCR_ENC_DEFAULT &&
|
||||
ycbcr_enc <= V4L2_YCBCR_ENC_SMPTE240M;
|
||||
}
|
||||
|
||||
static inline bool v4l2_is_hsv_enc_valid(__u8 hsv_enc)
|
||||
{
|
||||
return hsv_enc == V4L2_HSV_ENC_180 || hsv_enc == V4L2_HSV_ENC_256;
|
||||
}
|
||||
|
||||
static inline bool v4l2_is_quant_valid(__u8 quantization)
|
||||
{
|
||||
return quantization == V4L2_QUANTIZATION_FULL_RANGE ||
|
||||
quantization == V4L2_QUANTIZATION_LIM_RANGE;
|
||||
}
|
||||
|
||||
#endif /* V4L2_COMMON_H_ */
|
||||
|
Reference in New Issue
Block a user