lkml.org 
[lkml]   [2021]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 08/10] media: v4l2-ctrls: Add RGB color effects control
    Date
    From: Dillon Min <dillon.minfei@gmail.com>

    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

    Signed-off-by: Dillon Min <dillon.minfei@gmail.com>
    ---
    v5:
    - change 0xFFFFFF to 0xffffff.
    - change 2^24 to 2^24 -1.

    Documentation/userspace-api/media/v4l/control.rst | 9 +++++++++
    drivers/media/v4l2-core/v4l2-ctrls-defs.c | 6 ++++--
    include/uapi/linux/v4l2-controls.h | 4 +++-
    3 files changed, 16 insertions(+), 3 deletions(-)

    diff --git a/Documentation/userspace-api/media/v4l/control.rst b/Documentation/userspace-api/media/v4l/control.rst
    index f8d0b923da20..3eec65174260 100644
    --- a/Documentation/userspace-api/media/v4l/control.rst
    +++ b/Documentation/userspace-api/media/v4l/control.rst
    @@ -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``
    diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
    index 0cb6c0f18b39..6f00f8e4b4a6 100644
    --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c
    +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
    @@ -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;
    diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
    index 133e20444939..00bb181b56cc 100644
    --- a/include/uapi/linux/v4l2-controls.h
    +++ b/include/uapi/linux/v4l2-controls.h
    @@ -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 */

    --
    2.7.4
    \
     
     \ /
      Last update: 2021-10-18 07:06    [W:4.080 / U:0.356 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site