Commit ef9f18a9 authored by Dillon Min's avatar Dillon Min Committed by Mauro Carvalho Chehab
Browse files

media: v4l2-ctrls: Add RGB color effects control



Add V4L2_COLORFX_SET_RGB color effects control, V4L2_CID_COLORFX_RGB
for RGB color setting.

with two mirror changes:
- change 0xFFFFFF to 0xffffff
- fix comments 2^24 to 2^24 - 1

[hverkuil: dropped spaces around + with V4L2_CID_BASE for consistency]

Signed-off-by: default avatarDillon Min <dillon.minfei@gmail.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent ee4a929e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -242,8 +242,17 @@ Control IDs
    * - ``V4L2_COLORFX_SET_CBCR``
      - The Cb and Cr chroma components are replaced by fixed coefficients
	determined by ``V4L2_CID_COLORFX_CBCR`` control.
    * - ``V4L2_COLORFX_SET_RGB``
      - The RGB components are replaced by the fixed RGB components determined
        by ``V4L2_CID_COLORFX_RGB`` control.


``V4L2_CID_COLORFX_RGB`` ``(integer)``
    Determines the Red, Green, and Blue coefficients for
    ``V4L2_COLORFX_SET_RGB`` color effect.
    Bits [7:0] of the supplied 32 bit value are interpreted as Blue component,
    bits [15:8] as Green component, bits [23:16] as Red component, and
    bits [31:24] must be zero.

``V4L2_CID_COLORFX_CBCR`` ``(integer)``
    Determines the Cb and Cr coefficients for ``V4L2_COLORFX_SET_CBCR``
+4 −2
Original line number Diff line number Diff line
@@ -785,6 +785,7 @@ const char *v4l2_ctrl_get_name(u32 id)
	case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT:	return "Min Number of Output Buffers";
	case V4L2_CID_ALPHA_COMPONENT:		return "Alpha Component";
	case V4L2_CID_COLORFX_CBCR:		return "Color Effects, CbCr";
	case V4L2_CID_COLORFX_RGB:              return "Color Effects, RGB";

	/*
	 * Codec controls
@@ -1394,11 +1395,12 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
		*min = *max = *step = *def = 0;
		break;
	case V4L2_CID_BG_COLOR:
	case V4L2_CID_COLORFX_RGB:
		*type = V4L2_CTRL_TYPE_INTEGER;
		*step = 1;
		*min = 0;
		/* Max is calculated as RGB888 that is 2^24 */
		*max = 0xFFFFFF;
		/* Max is calculated as RGB888 that is 2^24 - 1 */
		*max = 0xffffff;
		break;
	case V4L2_CID_COLORFX_CBCR:
		*type = V4L2_CTRL_TYPE_INTEGER;
+3 −1
Original line number Diff line number Diff line
@@ -128,6 +128,7 @@ enum v4l2_colorfx {
	V4L2_COLORFX_SOLARIZATION		= 13,
	V4L2_COLORFX_ANTIQUE			= 14,
	V4L2_COLORFX_SET_CBCR			= 15,
	V4L2_COLORFX_SET_RGB			= 16,
};
#define V4L2_CID_AUTOBRIGHTNESS			(V4L2_CID_BASE+32)
#define V4L2_CID_BAND_STOP_FILTER		(V4L2_CID_BASE+33)
@@ -145,9 +146,10 @@ enum v4l2_colorfx {

#define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41)
#define V4L2_CID_COLORFX_CBCR			(V4L2_CID_BASE+42)
#define V4L2_CID_COLORFX_RGB			(V4L2_CID_BASE+43)

/* last CID + 1 */
#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+43)
#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+44)

/* USER-class private control IDs */