[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ae3baa0f-2446-cf25-09a9-de25919dde57@xs4all.nl>
Date: Fri, 12 Aug 2016 15:56:23 +0200
From: Hans Verkuil <hverkuil@...all.nl>
To: Ricardo Ribalda Delgado <ricardo.ribalda@...il.com>,
Jonathan Corbet <corbet@....net>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Markus Heiser <markus.heiser@...marIT.de>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Helen Mae Koike Fornazier <helen.koike@...labora.co.uk>,
Antti Palosaari <crope@....fi>,
Philipp Zabel <p.zabel@...gutronix.de>,
Shuah Khan <shuahkh@....samsung.com>,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-media@...r.kernel.org
Subject: Re: [PATCH v4 10/12] [media] videodev2.h Add HSV encoding
On 07/18/2016 02:42 PM, Ricardo Ribalda Delgado wrote:
> Some hardware maps the Hue between 0 and 255 instead of 0-179. Support
> this format with a new field hsv_enc.
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@...il.com>
> ---
> include/uapi/linux/videodev2.h | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index c7fb760386cf..49edc462ca8e 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -330,6 +330,15 @@ enum v4l2_ycbcr_encoding {
> V4L2_YCBCR_ENC_SMPTE240M = 8,
> };
>
> +enum v4l2_hsv_encoding {
> +
> + /* Hue mapped to 0 - 179 */
> + V4L2_HSV_ENC_180 = 16,
The value 16 is too low. Start at 128 instead. I expect more ycbcr encodings in the future.
You might want to add a comment to indicate that these hsv_encoding values shouldn't conflict
with the ycbcr_encoding values.
The V4L2_MAP_QUANTIZATION_DEFAULT should also be updated since if it is an hsv encoding,
then the quantization should be full range.
Unfortunately, this will conflict with this pull request:
https://patchwork.linuxtv.org/patch/36348/
It might be better to wait until that is merged.
Regards,
Hans
> +
> + /* Hue mapped to 0-255 */
> + V4L2_HSV_ENC_256 = 17,
> +};
> +
> /*
> * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
> * This depends on the colorspace.
> @@ -455,7 +464,12 @@ struct v4l2_pix_format {
> __u32 colorspace; /* enum v4l2_colorspace */
> __u32 priv; /* private data, depends on pixelformat */
> __u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
> - __u32 ycbcr_enc; /* enum v4l2_ycbcr_encoding */
> + union {
> + /* enum v4l2_ycbcr_encoding */
> + __u32 ycbcr_enc;
> + /* enum v4l2_hsv_encoding */
> + __u32 hsv_enc;
> + };
> __u32 quantization; /* enum v4l2_quantization */
> __u32 xfer_func; /* enum v4l2_xfer_func */
> };
> @@ -1988,7 +2002,10 @@ struct v4l2_pix_format_mplane {
> struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES];
> __u8 num_planes;
> __u8 flags;
> - __u8 ycbcr_enc;
> + union {
> + __u8 ycbcr_enc;
> + __u8 hsv_enc;
> + };
> __u8 quantization;
> __u8 xfer_func;
> __u8 reserved[7];
>
Powered by blists - more mailing lists