Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1465592 > unrolled thread

[PATCH v5 10/12] [media] videodev2.h Add HSV encoding

Started byRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
First post2016-08-18 16:50 +0200
Last post2016-08-22 11:30 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v5 10/12] [media] videodev2.h Add HSV encoding Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> - 2016-08-18 16:50 +0200
    Re: [PATCH v5 10/12] [media] videodev2.h Add HSV encoding Hans Verkuil <hverkuil@xs4all.nl> - 2016-08-19 15:20 +0200
      Re: [PATCH v5 10/12] [media] videodev2.h Add HSV encoding Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> - 2016-08-22 11:30 +0200

#1465592 — [PATCH v5 10/12] [media] videodev2.h Add HSV encoding

FromRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date2016-08-18 16:50 +0200
Subject[PATCH v5 10/12] [media] videodev2.h Add HSV encoding
Message-ID<s7wNQ-16E-31@gated-at.bofh.it>
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@gmail.com>
---
 include/uapi/linux/videodev2.h | 32 +++++++++++++++++++++++++++-----
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 58ed8aedc196..71a4c3c13ee0 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -335,6 +335,19 @@ enum v4l2_ycbcr_encoding {
 };
 
 /*
+ * enum v4l2_hsv_encoding values should not collide with the ones from
+ * enum v4l2_ycbcr_encoding.
+ */
+enum v4l2_hsv_encoding {
+
+	/* Hue mapped to 0 - 179 */
+	V4L2_HSV_ENC_180		= 128,
+
+	/* Hue mapped to 0-255 */
+	V4L2_HSV_ENC_256		= 129,
+};
+
+/*
  * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
  * This depends on the colorspace.
  */
@@ -362,9 +375,10 @@ enum v4l2_quantization {
  * This depends on whether the image is RGB or not, the colorspace and the
  * Y'CbCr encoding.
  */
-#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
-	(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
-	 (((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
+#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_yuv, colsp, ycbcr_enc) \
+	(((is_rgb_or_yuv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
+	 V4L2_QUANTIZATION_LIM_RANGE : \
+	 (((is_rgb_or_yuv) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
 	  (ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) || \
 	  (colsp) == V4L2_COLORSPACE_ADOBERGB || (colsp) == V4L2_COLORSPACE_SRGB ? \
 	 V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
@@ -460,7 +474,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 */
 };
@@ -1993,7 +2012,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];
-- 
2.8.1

[toc] | [next] | [standalone]


#1466393

FromHans Verkuil <hverkuil@xs4all.nl>
Date2016-08-19 15:20 +0200
Message-ID<s7RSi-65h-25@gated-at.bofh.it>
In reply to#1465592
On 08/18/2016 04:33 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@gmail.com>
> ---
>  include/uapi/linux/videodev2.h | 32 +++++++++++++++++++++++++++-----
>  1 file changed, 27 insertions(+), 5 deletions(-)
> 
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 58ed8aedc196..71a4c3c13ee0 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -335,6 +335,19 @@ enum v4l2_ycbcr_encoding {
>  };
>  
>  /*
> + * enum v4l2_hsv_encoding values should not collide with the ones from
> + * enum v4l2_ycbcr_encoding.
> + */
> +enum v4l2_hsv_encoding {
> +
> +	/* Hue mapped to 0 - 179 */
> +	V4L2_HSV_ENC_180		= 128,
> +
> +	/* Hue mapped to 0-255 */
> +	V4L2_HSV_ENC_256		= 129,
> +};
> +
> +/*
>   * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
>   * This depends on the colorspace.
>   */
> @@ -362,9 +375,10 @@ enum v4l2_quantization {
>   * This depends on whether the image is RGB or not, the colorspace and the
>   * Y'CbCr encoding.
>   */
> -#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
> -	(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
> -	 (((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
> +#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_yuv, colsp, ycbcr_enc) \

That should be is_rgb_or_hsv.

All other patches look OK.

It would be useful though if you could rebase on top of https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=sycc.
I have a pull request outstanding for that tree, and it will conflict with this patch.

There might be other doc conflicts as well.

Regards,

	Hans

> +	(((is_rgb_or_yuv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
> +	 V4L2_QUANTIZATION_LIM_RANGE : \
> +	 (((is_rgb_or_yuv) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
>  	  (ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) || \
>  	  (colsp) == V4L2_COLORSPACE_ADOBERGB || (colsp) == V4L2_COLORSPACE_SRGB ? \
>  	 V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
> @@ -460,7 +474,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 */
>  };
> @@ -1993,7 +2012,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];
> 

[toc] | [prev] | [next] | [standalone]


#1467497

FromRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date2016-08-22 11:30 +0200
Message-ID<s8TIl-4sY-13@gated-at.bofh.it>
In reply to#1466393
Hello Hans:

>
> That should be is_rgb_or_hsv.

Sorry about that! I am resending v5_2 with only that patch fixed

>
> All other patches look OK.

Thanks

>
> It would be useful though if you could rebase on top of https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=sycc.
> I have a pull request outstanding for that tree, and it will conflict with this patch.

It should be already be rebased over that branch:

ricardo@neopili:~/curro/linux-upstream$ git rebase hans/sycc
Current branch vivid-hsv-v5 is up to date.


Best regards!

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web