]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[media] v4l: Add 16-bit raw bayer pixel formats
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 27 Jun 2016 13:46:16 +0000 (10:46 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 23 Nov 2016 22:04:22 +0000 (20:04 -0200)
The formats added by this patch are:

V4L2_PIX_FMT_SBGGR16
V4L2_PIX_FMT_SGBRG16
V4L2_PIX_FMT_SGRBG16

V4L2_PIX_FMT_SRGGB16 already existed before the patch. Rework the
documentation to match that of the other sample depths.

Also align the description of V4L2_PIX_FMT_SRGGB16 to match with other
similar formats.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Documentation/media/uapi/v4l/pixfmt-rgb.rst
Documentation/media/uapi/v4l/pixfmt-srggb16.rst [moved from Documentation/media/uapi/v4l/pixfmt-sbggr16.rst with 53% similarity]
drivers/media/v4l2-core/v4l2-ioctl.c
include/uapi/linux/videodev2.h

index 9cc980882e80bb74340127e3ff752115f5367b95..b0f35136021e2a2419e8da2b4b29f2444d06eee6 100644 (file)
@@ -12,9 +12,9 @@ RGB Formats
 
     pixfmt-packed-rgb
     pixfmt-srggb8
-    pixfmt-sbggr16
     pixfmt-srggb10
     pixfmt-srggb10p
     pixfmt-srggb10alaw8
     pixfmt-srggb10dpcm8
     pixfmt-srggb12
+    pixfmt-srggb16
similarity index 53%
rename from Documentation/media/uapi/v4l/pixfmt-sbggr16.rst
rename to Documentation/media/uapi/v4l/pixfmt-srggb16.rst
index 6f7f327db85ca62df622fe3c8c3f5345d6602e49..06facc9cd5390e7c8ee9456ef45c27408cd7e4a1 100644 (file)
@@ -1,21 +1,28 @@
 .. -*- coding: utf-8; mode: rst -*-
 
-.. _V4L2-PIX-FMT-SBGGR16:
+.. _V4L2-PIX-FMT-SRGGB16:
+.. _v4l2-pix-fmt-sbggr16:
+.. _v4l2-pix-fmt-sgbrg16:
+.. _v4l2-pix-fmt-sgrbg16:
 
-*****************************
-V4L2_PIX_FMT_SBGGR16 ('BYR2')
-*****************************
 
-Bayer RGB format
+***************************************************************************************************************************
+V4L2_PIX_FMT_SRGGB16 ('RG16'), V4L2_PIX_FMT_SGRBG16 ('GR16'), V4L2_PIX_FMT_SGBRG16 ('GB16'), V4L2_PIX_FMT_SBGGR16 ('BYR2'),
+***************************************************************************************************************************
+
+
+16-bit Bayer formats
 
 
 Description
 ===========
 
-This format is similar to
-:ref:`V4L2_PIX_FMT_SBGGR8 <V4L2-PIX-FMT-SBGGR8>`, except each pixel
-has a depth of 16 bits. The least significant byte is stored at lower
-memory addresses (little-endian).
+These four pixel formats are raw sRGB / Bayer formats with 16 bits per
+sample. Each sample is stored in a 16-bit word. Each n-pixel row contains
+n/2 green samples and n/2 blue or red samples, with alternating red and blue
+rows. Bytes are stored in memory in little endian order. They are
+conventionally described as GRGR... BGBG..., RGRG... GBGB..., etc. Below is
+an example of one of these formats:
 
 **Byte Order.**
 Each cell is one byte.
index 181381d1dc778af772cbaf8266888bd1be6ef6ee..61d2d65318c50261e99453ea63f995a50941bd94 100644 (file)
@@ -1191,7 +1191,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
        case V4L2_PIX_FMT_SGBRG10DPCM8: descr = "8-bit Bayer GBGB/RGRG (DPCM)"; break;
        case V4L2_PIX_FMT_SGRBG10DPCM8: descr = "8-bit Bayer GRGR/BGBG (DPCM)"; break;
        case V4L2_PIX_FMT_SRGGB10DPCM8: descr = "8-bit Bayer RGRG/GBGB (DPCM)"; break;
-       case V4L2_PIX_FMT_SBGGR16:      descr = "16-bit Bayer BGBG/GRGR (Exp.)"; break;
+       case V4L2_PIX_FMT_SBGGR16:      descr = "16-bit Bayer BGBG/GRGR"; break;
+       case V4L2_PIX_FMT_SGBRG16:      descr = "16-bit Bayer GBGB/RGRG"; break;
+       case V4L2_PIX_FMT_SGRBG16:      descr = "16-bit Bayer GRGR/BGBG"; break;
+       case V4L2_PIX_FMT_SRGGB16:      descr = "16-bit Bayer RGRG/GBGB"; break;
        case V4L2_PIX_FMT_SN9C20X_I420: descr = "GSPCA SN9C20X I420"; break;
        case V4L2_PIX_FMT_SPCA501:      descr = "GSPCA SPCA501"; break;
        case V4L2_PIX_FMT_SPCA505:      descr = "GSPCA SPCA505"; break;
index d3f613e2c54a9b84d47bff10a4373374289a1dd1..46e8a2e369f907716337db007dca0aba1f5f7477 100644 (file)
@@ -605,6 +605,9 @@ struct v4l2_pix_format {
 #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.. */
+#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16  GBGB.. RGRG.. */
+#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16  GRGR.. BGBG.. */
+#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16  RGRG.. GBGB.. */
 
 /* HSV formats */
 #define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')