Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1465592 > unrolled thread
| Started by | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> |
|---|---|
| First post | 2016-08-18 16:50 +0200 |
| Last post | 2016-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.
[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
| From | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> |
|---|---|
| Date | 2016-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]
| From | Hans Verkuil <hverkuil@xs4all.nl> |
|---|---|
| Date | 2016-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]
| From | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> |
|---|---|
| Date | 2016-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