Re: [RFC/PATCH 2/9] v4l: Group media bus pixel codes by types and sort them alphabetically

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 26 Sep 2010, Laurent Pinchart wrote:

> Adding new pixel codes at the end of the enumeration will soon create a
> mess, so sort the pixel codes by type and then sort them alphabetically.
> 
> As the codes are part of the kernel ABI their value can't change when a
> new code is inserted in the enumeration, so they are given an explicit
> numerical value. When inserting a new pixel code developers must use and
> update the V4L2_MBUS_FMT_LAST value.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---
>  include/linux/v4l2-mediabus.h |   54 ++++++++++++++++++++++++----------------
>  1 files changed, 32 insertions(+), 22 deletions(-)
> 
> diff --git a/include/linux/v4l2-mediabus.h b/include/linux/v4l2-mediabus.h
> index 127512a..bc637a5 100644
> --- a/include/linux/v4l2-mediabus.h
> +++ b/include/linux/v4l2-mediabus.h
> @@ -24,31 +24,41 @@
>   * transferred first, "BE" means that the most significant bits are transferred
>   * first, and "PADHI" and "PADLO" define which bits - low or high, in the
>   * incomplete high byte, are filled with padding bits.
> + *
> + * The pixel codes are grouped by types and (mostly) sorted alphabetically. As

Why mostly? Wouldn't it make it easier for future additions if we sorted 
them strictly from the beginning?

> + * their value can't change when a new pixel code is inserted in the
> + * enumeration, they are explicitly given a numerical value. When inserting a
> + * new pixel code use and update the V4L2_MBUS_FMT_LAST value.
>   */
>  enum v4l2_mbus_pixelcode {
>  	V4L2_MBUS_FMT_FIXED = 1,
> -	V4L2_MBUS_FMT_YUYV8_2X8,
> -	V4L2_MBUS_FMT_YVYU8_2X8,
> -	V4L2_MBUS_FMT_UYVY8_2X8,
> -	V4L2_MBUS_FMT_VYUY8_2X8,
> -	V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
> -	V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE,
> -	V4L2_MBUS_FMT_RGB565_2X8_LE,
> -	V4L2_MBUS_FMT_RGB565_2X8_BE,
> -	V4L2_MBUS_FMT_SBGGR8_1X8,
> -	V4L2_MBUS_FMT_SBGGR10_1X10,
> -	V4L2_MBUS_FMT_GREY8_1X8,
> -	V4L2_MBUS_FMT_Y10_1X10,
> -	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE,
> -	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE,
> -	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE,
> -	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE,
> -	V4L2_MBUS_FMT_SGRBG8_1X8,
> -	V4L2_MBUS_FMT_SBGGR12_1X12,
> -	V4L2_MBUS_FMT_YUYV8_1_5X8,
> -	V4L2_MBUS_FMT_YVYU8_1_5X8,
> -	V4L2_MBUS_FMT_UYVY8_1_5X8,
> -	V4L2_MBUS_FMT_VYUY8_1_5X8,
> +	/* RGB */
> +	V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 7,
> +	V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 6,
> +	V4L2_MBUS_FMT_RGB565_2X8_BE = 9,
> +	V4L2_MBUS_FMT_RGB565_2X8_LE = 8,
> +	/* YUV (including grey) */
> +	V4L2_MBUS_FMT_GREY8_1X8 = 12,
> +	V4L2_MBUS_FMT_Y10_1X10 = 13,
> +	V4L2_MBUS_FMT_YUYV8_1_5X8 = 20,
> +	V4L2_MBUS_FMT_YVYU8_1_5X8 = 21,
> +	V4L2_MBUS_FMT_UYVY8_1_5X8 = 22,
> +	V4L2_MBUS_FMT_VYUY8_1_5X8 = 23,
> +	V4L2_MBUS_FMT_YUYV8_2X8 = 2,
> +	V4L2_MBUS_FMT_UYVY8_2X8 = 4,
> +	V4L2_MBUS_FMT_YVYU8_2X8 = 3,
> +	V4L2_MBUS_FMT_VYUY8_2X8 = 5,
> +	/* Bayer */
> +	V4L2_MBUS_FMT_SBGGR8_1X8 = 10,
> +	V4L2_MBUS_FMT_SBGGR10_1X10 = 11,
> +	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 16,
> +	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 14,
> +	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 17,
> +	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 15,
> +	V4L2_MBUS_FMT_SBGGR12_1X12 = 19,
> +	V4L2_MBUS_FMT_SGRBG8_1X8 = 18,
> +	/* Last - Update this when adding a new pixel code */
> +	V4L2_MBUS_FMT_LAST = 24,
>  };
>  
>  /**
> -- 
> 1.7.2.2

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux