Hi Sakari,

Thank you for the patch.

On Monday 15 December 2014 21:58:39 Sakari Ailus wrote:
> Include packed raw 10-bit definitions as well.
> 
> This includes patches up to and including
> "[media] mn88473: One function call less in mn88473_init() after error"
> and the following patches (v2 sent to linux-media):
> 
> "DocBook: v4l: Fix raw bayer pixel format documentation wording",
> "DocBook: v4l: Rearrange raw bayer format definitions, remove bad comment"
> and "v4l: Add packed Bayer raw10 pixel formats".

Could you please resubmit this with the upstream commit ID when Mauro will 
have pulled those two patches ?

> Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
> ---
>  include/linux/v4l2-common.h   |   2 +
>  include/linux/v4l2-controls.h |   6 +++
>  include/linux/videodev2.h     | 121 ++++++++++++++++++++++++++++++++-------
>  3 files changed, 111 insertions(+), 18 deletions(-)
> 
> diff --git a/include/linux/v4l2-common.h b/include/linux/v4l2-common.h
> index 2f6f8ca..1527398 100644
> --- a/include/linux/v4l2-common.h
> +++ b/include/linux/v4l2-common.h
> @@ -43,6 +43,8 @@
>  #define V4L2_SEL_TGT_CROP_DEFAULT    0x0001
>  /* Cropping bounds */
>  #define V4L2_SEL_TGT_CROP_BOUNDS     0x0002
> +/* Native frame size */
> +#define V4L2_SEL_TGT_NATIVE_SIZE     0x0003
>  /* Current composing area */
>  #define V4L2_SEL_TGT_COMPOSE         0x0100
>  /* Default composing area */
> diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h
> index e946e43..661f119 100644
> --- a/include/linux/v4l2-controls.h
> +++ b/include/linux/v4l2-controls.h
> @@ -746,6 +746,8 @@ enum v4l2_auto_focus_range {
>       V4L2_AUTO_FOCUS_RANGE_INFINITY          = 3,
>  };
> 
> +#define V4L2_CID_PAN_SPEED                   (V4L2_CID_CAMERA_CLASS_BASE+32)
> +#define V4L2_CID_TILT_SPEED                  (V4L2_CID_CAMERA_CLASS_BASE+33)
> 
>  /* FM Modulator class control IDs */
> 
> @@ -865,6 +867,10 @@ enum v4l2_jpeg_chroma_subsampling {
>  #define V4L2_CID_VBLANK                              
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
>  #define V4L2_CID_HBLANK                              
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
>  #define V4L2_CID_ANALOGUE_GAIN                       
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE 
+ 3)
> +#define V4L2_CID_TEST_PATTERN_RED            
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 
4)
> +#define V4L2_CID_TEST_PATTERN_GREENR         
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE 
+
> 5) +#define V4L2_CID_TEST_PATTERN_BLUE                
> (V4L2_CID_IMAGE_SOURCE_CLASS_BASE 
+
> 6) +#define V4L2_CID_TEST_PATTERN_GREENB              
(V4L2_CID_IMAGE_SOURCE_CLASS_BASE
> + 7)
> 
> 
>  /* Image processing controls */
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index 87b83c3..14e2129 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -77,6 +77,7 @@
>  /*  Four-character-code (FOURCC) */
>  #define v4l2_fourcc(a, b, c, d)\
>       ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 
24))
> +#define v4l2_fourcc_be(a, b, c, d)   (v4l2_fourcc(a, b, c, d) | (1 << 31))
> 
>  /*
>   *   E N U M S
> @@ -175,30 +176,103 @@ enum v4l2_memory {
> 
>  /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
>  enum v4l2_colorspace {
> -     /* ITU-R 601 -- broadcast NTSC/PAL */
> +     /* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
>       V4L2_COLORSPACE_SMPTE170M     = 1,
> 
> -     /* 1125-Line (US) HDTV */
> +     /* Obsolete pre-1998 SMPTE 240M HDTV standard, superseded by Rec 709 */
>       V4L2_COLORSPACE_SMPTE240M     = 2,
> 
> -     /* HD and modern captures. */
> +     /* Rec.709: used for HDTV */
>       V4L2_COLORSPACE_REC709        = 3,
> 
> -     /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */
> +     /*
> +      * Deprecated, do not use. No driver will ever return this. This was
> +      * based on a misunderstanding of the bt878 datasheet.
> +      */
>       V4L2_COLORSPACE_BT878         = 4,
> 
> -     /* These should be useful.  Assume 601 extents. */
> +     /*
> +      * NTSC 1953 colorspace. This only makes sense when dealing with
> +      * really, really old NTSC recordings. Superseded by SMPTE 170M.
> +      */
>       V4L2_COLORSPACE_470_SYSTEM_M  = 5,
> +
> +     /*
> +      * EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when
> +      * dealing with really old PAL/SECAM recordings. Superseded by
> +      * SMPTE 170M.
> +      */
>       V4L2_COLORSPACE_470_SYSTEM_BG = 6,
> 
> -     /* I know there will be cameras that send this.  So, this is
> -      * unspecified chromaticities and full 0-255 on each of the
> -      * Y'CbCr components
> +     /*
> +      * Effectively shorthand for V4L2_COLORSPACE_SRGB, V4L2_YCBCR_ENC_601
> +      * and V4L2_QUANTIZATION_FULL_RANGE. To be used for (Motion-)JPEG.
>        */
>       V4L2_COLORSPACE_JPEG          = 7,
> 
> -     /* For RGB colourspaces, this is probably a good start. */
> +     /* For RGB colorspaces such as produces by most webcams. */
>       V4L2_COLORSPACE_SRGB          = 8,
> +
> +     /* AdobeRGB colorspace */
> +     V4L2_COLORSPACE_ADOBERGB      = 9,
> +
> +     /* BT.2020 colorspace, used for UHDTV. */
> +     V4L2_COLORSPACE_BT2020        = 10,
> +};
> +
> +enum v4l2_ycbcr_encoding {
> +     /*
> +      * Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
> +      * various colorspaces:
> +      *
> +      * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
> +      * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_ADOBERGB and
> +      * V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
> +      *
> +      * V4L2_COLORSPACE_REC709: V4L2_YCBCR_ENC_709
> +      *
> +      * V4L2_COLORSPACE_SRGB: V4L2_YCBCR_ENC_SYCC
> +      *
> +      * V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020
> +      *
> +      * V4L2_COLORSPACE_SMPTE240M: V4L2_YCBCR_ENC_SMPTE240M
> +      */
> +     V4L2_YCBCR_ENC_DEFAULT        = 0,
> +
> +     /* ITU-R 601 -- SDTV */
> +     V4L2_YCBCR_ENC_601            = 1,
> +
> +     /* Rec. 709 -- HDTV */
> +     V4L2_YCBCR_ENC_709            = 2,
> +
> +     /* ITU-R 601/EN 61966-2-4 Extended Gamut -- SDTV */
> +     V4L2_YCBCR_ENC_XV601          = 3,
> +
> +     /* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */
> +     V4L2_YCBCR_ENC_XV709          = 4,
> +
> +     /* sYCC (Y'CbCr encoding of sRGB) */
> +     V4L2_YCBCR_ENC_SYCC           = 5,
> +
> +     /* BT.2020 Non-constant Luminance Y'CbCr */
> +     V4L2_YCBCR_ENC_BT2020         = 6,
> +
> +     /* BT.2020 Constant Luminance Y'CbcCrc */
> +     V4L2_YCBCR_ENC_BT2020_CONST_LUM = 7,
> +
> +     /* SMPTE 240M -- Obsolete HDTV */
> +     V4L2_YCBCR_ENC_SMPTE240M      = 8,
> +};
> +
> +enum v4l2_quantization {
> +     /*
> +      * The default for R'G'B' quantization is always full range. For
> +      * Y'CbCr the quantization is always limited range, except for
> +      * SYCC, XV601, XV709 or JPEG: those are full range.
> +      */
> +     V4L2_QUANTIZATION_DEFAULT     = 0,
> +     V4L2_QUANTIZATION_FULL_RANGE  = 1,
> +     V4L2_QUANTIZATION_LIM_RANGE   = 2,
>  };
> 
>  enum v4l2_priority {
> @@ -291,6 +365,8 @@ 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 */
> +     __u32                   quantization;   /* enum v4l2_quantization */
>  };
> 
>  /*      Pixel format         FOURCC                          depth 
> Description  */ @@ -305,6 +381,8 @@ struct v4l2_pix_format {
>  #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 
> XRGB-1-5-5-5  */ #define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B',
> 'P') /* 16  RGB-5-6-5     */ #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R',
> 'G', 'B', 'Q') /* 16  RGB-5-5-5 BE  */ +#define V4L2_PIX_FMT_ARGB555X
> v4l2_fourcc_be('A', 'R', '1', '5') /* 16  ARGB-5-5-5 BE */ +#define
> V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16  XRGB-5-5-5
> BE */ #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 
> RGB-5-6-5 BE  */ #define V4L2_PIX_FMT_BGR666  v4l2_fourcc('B', 'G', 'R',
> 'H') /* 18  BGR-6-6-6   */ #define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B',
> 'G', 'R', '3') /* 24  BGR-8-8-8     */ @@ -383,10 +461,11 @@ struct
> v4l2_pix_format {
>  #define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10  GBGB..
> RGRG.. */ #define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /*
> 10  GRGR.. BGBG.. */ #define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G',
> '1', '0') /* 10  RGRG.. GBGB.. */ -#define V4L2_PIX_FMT_SBGGR12
> v4l2_fourcc('B', 'G', '1', '2') /* 12  BGBG.. GRGR.. */ -#define
> V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12  GBGB.. RGRG..
> */ -#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 
> GRGR.. BGBG.. */ -#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1',
> '2') /* 12  RGRG.. GBGB.. */ +        /* 10bit raw bayer packed, 5 bytes for 
every
> 4 pixels */
> +#define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A')
> +#define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A')
> +#define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A')
> +#define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A')
>       /* 10bit raw bayer a-law compressed to 8 bits */
>  #define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8')
>  #define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8')
> @@ -397,10 +476,10 @@ struct v4l2_pix_format {
>  #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
>  #define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
>  #define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8')
> -     /*
> -      * 10bit raw bayer, expanded to 16 bits
> -      * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb...
> -      */
> +#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12  BGBG..
> GRGR.. */ +#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /*
> 12  GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A',
> '1', '2') /* 12  GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB12
> v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. GBGB.. */ #define
> V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16  BGBG.. GRGR..
> */
> 
>  /* compressed formats */
> @@ -1244,6 +1323,7 @@ struct v4l2_input {
>  #define V4L2_IN_CAP_DV_TIMINGS               0x00000002 /* Supports 
> S_DV_TIMINGS */
>  #define V4L2_IN_CAP_CUSTOM_TIMINGS   V4L2_IN_CAP_DV_TIMINGS /* For
> compatibility */ #define V4L2_IN_CAP_STD                      0x00000004 /* 
> Supports 
S_STD */
> +#define V4L2_IN_CAP_NATIVE_SIZE              0x00000008 /* Supports setting 
> native 
size
> */
> 
>  /*
>   *   V I D E O   O U T P U T S
> @@ -1267,6 +1347,7 @@ struct v4l2_output {
>  #define V4L2_OUT_CAP_DV_TIMINGS              0x00000002 /* Supports 
> S_DV_TIMINGS 
*/
>  #define V4L2_OUT_CAP_CUSTOM_TIMINGS  V4L2_OUT_CAP_DV_TIMINGS /* For
> compatibility */ #define V4L2_OUT_CAP_STD             0x00000004 /* Supports 
> S_STD 
*/
> +#define V4L2_OUT_CAP_NATIVE_SIZE     0x00000008 /* Supports setting native 
size
> */
> 
>  /*
>   *   C O N T R O L S
> @@ -1772,6 +1853,8 @@ struct v4l2_plane_pix_format {
>   * @plane_fmt:               per-plane information
>   * @num_planes:              number of planes for this format
>   * @flags:           format flags (V4L2_PIX_FMT_FLAG_*)
> + * @ycbcr_enc:               enum v4l2_ycbcr_encoding, Y'CbCr encoding
> + * @quantization:    enum v4l2_quantization, colorspace quantization
>   */
>  struct v4l2_pix_format_mplane {
>       __u32                           width;
> @@ -1783,7 +1866,9 @@ struct v4l2_pix_format_mplane {
>       struct v4l2_plane_pix_format    plane_fmt[VIDEO_MAX_PLANES];
>       __u8                            num_planes;
>       __u8                            flags;
> -     __u8                            reserved[10];
> +     __u8                            ycbcr_enc;
> +     __u8                            quantization;
> +     __u8                            reserved[8];
>  } __attribute__ ((packed));
> 
>  /**

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to