1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun.. _pixfmt-reserved: 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun*************************** 6*4882a593SmuzhiyunReserved Format Identifiers 7*4882a593Smuzhiyun*************************** 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunThese formats are not defined by this specification, they are just 10*4882a593Smuzhiyunlisted for reference and to avoid naming conflicts. If you want to 11*4882a593Smuzhiyunregister your own format, send an e-mail to the linux-media mailing list 12*4882a593Smuzhiyun`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__ 13*4882a593Smuzhiyunfor inclusion in the ``videodev2.h`` file. If you want to share your 14*4882a593Smuzhiyunformat with other developers add a link to your documentation and send a 15*4882a593Smuzhiyuncopy to the linux-media mailing list for inclusion in this section. If 16*4882a593Smuzhiyunyou think your format should be listed in a standard format section 17*4882a593Smuzhiyunplease make a proposal on the linux-media mailing list. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun.. _reserved-formats: 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun.. flat-table:: Reserved Image Formats 25*4882a593Smuzhiyun :header-rows: 1 26*4882a593Smuzhiyun :stub-columns: 0 27*4882a593Smuzhiyun :widths: 3 1 4 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun * - Identifier 30*4882a593Smuzhiyun - Code 31*4882a593Smuzhiyun - Details 32*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-DV: 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun - ``V4L2_PIX_FMT_DV`` 35*4882a593Smuzhiyun - 'dvsd' 36*4882a593Smuzhiyun - unknown 37*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-ET61X251: 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun - ``V4L2_PIX_FMT_ET61X251`` 40*4882a593Smuzhiyun - 'E625' 41*4882a593Smuzhiyun - Compressed format of the ET61X251 driver. 42*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-HI240: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun - ``V4L2_PIX_FMT_HI240`` 45*4882a593Smuzhiyun - 'HI24' 46*4882a593Smuzhiyun - 8 bit RGB format used by the BTTV driver. 47*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-HM12: 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun - ``V4L2_PIX_FMT_HM12`` 50*4882a593Smuzhiyun - 'HM12' 51*4882a593Smuzhiyun - YUV 4:2:0 format used by the IVTV driver. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun The format is documented in the kernel sources in the file 54*4882a593Smuzhiyun ``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst`` 55*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-CPIA1: 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun - ``V4L2_PIX_FMT_CPIA1`` 58*4882a593Smuzhiyun - 'CPIA' 59*4882a593Smuzhiyun - YUV format used by the gspca cpia1 driver. 60*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-JPGL: 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun - ``V4L2_PIX_FMT_JPGL`` 63*4882a593Smuzhiyun - 'JPGL' 64*4882a593Smuzhiyun - JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW 65*4882a593Smuzhiyun 80x. 66*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SPCA501: 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SPCA501`` 69*4882a593Smuzhiyun - 'S501' 70*4882a593Smuzhiyun - YUYV per line used by the gspca driver. 71*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SPCA505: 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SPCA505`` 74*4882a593Smuzhiyun - 'S505' 75*4882a593Smuzhiyun - YYUV per line used by the gspca driver. 76*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SPCA508: 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SPCA508`` 79*4882a593Smuzhiyun - 'S508' 80*4882a593Smuzhiyun - YUVY per line used by the gspca driver. 81*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SPCA561: 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SPCA561`` 84*4882a593Smuzhiyun - 'S561' 85*4882a593Smuzhiyun - Compressed GBRG Bayer format used by the gspca driver. 86*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-PAC207: 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun - ``V4L2_PIX_FMT_PAC207`` 89*4882a593Smuzhiyun - 'P207' 90*4882a593Smuzhiyun - Compressed BGGR Bayer format used by the gspca driver. 91*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-MR97310A: 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun - ``V4L2_PIX_FMT_MR97310A`` 94*4882a593Smuzhiyun - 'M310' 95*4882a593Smuzhiyun - Compressed BGGR Bayer format used by the gspca driver. 96*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-JL2005BCD: 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun - ``V4L2_PIX_FMT_JL2005BCD`` 99*4882a593Smuzhiyun - 'JL20' 100*4882a593Smuzhiyun - JPEG compressed RGGB Bayer format used by the gspca driver. 101*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-OV511: 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun - ``V4L2_PIX_FMT_OV511`` 104*4882a593Smuzhiyun - 'O511' 105*4882a593Smuzhiyun - OV511 JPEG format used by the gspca driver. 106*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-OV518: 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun - ``V4L2_PIX_FMT_OV518`` 109*4882a593Smuzhiyun - 'O518' 110*4882a593Smuzhiyun - OV518 JPEG format used by the gspca driver. 111*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-PJPG: 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun - ``V4L2_PIX_FMT_PJPG`` 114*4882a593Smuzhiyun - 'PJPG' 115*4882a593Smuzhiyun - Pixart 73xx JPEG format used by the gspca driver. 116*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SE401: 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SE401`` 119*4882a593Smuzhiyun - 'S401' 120*4882a593Smuzhiyun - Compressed RGB format used by the gspca se401 driver 121*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SQ905C: 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SQ905C`` 124*4882a593Smuzhiyun - '905C' 125*4882a593Smuzhiyun - Compressed RGGB bayer format used by the gspca driver. 126*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-MJPEG: 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun - ``V4L2_PIX_FMT_MJPEG`` 129*4882a593Smuzhiyun - 'MJPG' 130*4882a593Smuzhiyun - Compressed format used by the Zoran driver 131*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-PWC1: 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun - ``V4L2_PIX_FMT_PWC1`` 134*4882a593Smuzhiyun - 'PWC1' 135*4882a593Smuzhiyun - Compressed format of the PWC driver. 136*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-PWC2: 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun - ``V4L2_PIX_FMT_PWC2`` 139*4882a593Smuzhiyun - 'PWC2' 140*4882a593Smuzhiyun - Compressed format of the PWC driver. 141*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SN9C10X: 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SN9C10X`` 144*4882a593Smuzhiyun - 'S910' 145*4882a593Smuzhiyun - Compressed format of the SN9C102 driver. 146*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SN9C20X-I420: 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SN9C20X_I420`` 149*4882a593Smuzhiyun - 'S920' 150*4882a593Smuzhiyun - YUV 4:2:0 format of the gspca sn9c20x driver. 151*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SN9C2028: 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SN9C2028`` 154*4882a593Smuzhiyun - 'SONX' 155*4882a593Smuzhiyun - Compressed GBRG bayer format of the gspca sn9c2028 driver. 156*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-STV0680: 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun - ``V4L2_PIX_FMT_STV0680`` 159*4882a593Smuzhiyun - 'S680' 160*4882a593Smuzhiyun - Bayer format of the gspca stv0680 driver. 161*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-WNVA: 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun - ``V4L2_PIX_FMT_WNVA`` 164*4882a593Smuzhiyun - 'WNVA' 165*4882a593Smuzhiyun - Used by the Winnov Videum driver, 166*4882a593Smuzhiyun `http://www.thedirks.org/winnov/ <http://www.thedirks.org/winnov/>`__ 167*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-TM6000: 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun - ``V4L2_PIX_FMT_TM6000`` 170*4882a593Smuzhiyun - 'TM60' 171*4882a593Smuzhiyun - Used by Trident tm6000 172*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-CIT-YYVYUY: 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun - ``V4L2_PIX_FMT_CIT_YYVYUY`` 175*4882a593Smuzhiyun - 'CITV' 176*4882a593Smuzhiyun - Used by xirlink CIT, found at IBM webcams. 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun Uses one line of Y then 1 line of VYUY 179*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-KONICA420: 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun - ``V4L2_PIX_FMT_KONICA420`` 182*4882a593Smuzhiyun - 'KONI' 183*4882a593Smuzhiyun - Used by Konica webcams. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun YUV420 planar in blocks of 256 pixels. 186*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-YYUV: 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun - ``V4L2_PIX_FMT_YYUV`` 189*4882a593Smuzhiyun - 'YYUV' 190*4882a593Smuzhiyun - unknown 191*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-Y4: 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun - ``V4L2_PIX_FMT_Y4`` 194*4882a593Smuzhiyun - 'Y04 ' 195*4882a593Smuzhiyun - Old 4-bit greyscale format. Only the most significant 4 bits of 196*4882a593Smuzhiyun each byte are used, the other bits are set to 0. 197*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-Y6: 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun - ``V4L2_PIX_FMT_Y6`` 200*4882a593Smuzhiyun - 'Y06 ' 201*4882a593Smuzhiyun - Old 6-bit greyscale format. Only the most significant 6 bits of 202*4882a593Smuzhiyun each byte are used, the other bits are set to 0. 203*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-S5C-UYVY-JPG: 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun - ``V4L2_PIX_FMT_S5C_UYVY_JPG`` 206*4882a593Smuzhiyun - 'S5CI' 207*4882a593Smuzhiyun - Two-planar format used by Samsung S5C73MX cameras. The first plane 208*4882a593Smuzhiyun contains interleaved JPEG and UYVY image data, followed by meta 209*4882a593Smuzhiyun data in form of an array of offsets to the UYVY data blocks. The 210*4882a593Smuzhiyun actual pointer array follows immediately the interleaved JPEG/UYVY 211*4882a593Smuzhiyun data, the number of entries in this array equals the height of the 212*4882a593Smuzhiyun UYVY image. Each entry is a 4-byte unsigned integer in big endian 213*4882a593Smuzhiyun order and it's an offset to a single pixel line of the UYVY image. 214*4882a593Smuzhiyun The first plane can start either with JPEG or UYVY data chunk. The 215*4882a593Smuzhiyun size of a single UYVY block equals the UYVY image's width 216*4882a593Smuzhiyun multiplied by 2. The size of a JPEG chunk depends on the image and 217*4882a593Smuzhiyun can vary with each line. 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun The second plane, at an offset of 4084 bytes, contains a 4-byte 220*4882a593Smuzhiyun offset to the pointer array in the first plane. This offset is 221*4882a593Smuzhiyun followed by a 4-byte value indicating size of the pointer array. 222*4882a593Smuzhiyun All numbers in the second plane are also in big endian order. 223*4882a593Smuzhiyun Remaining data in the second plane is undefined. The information 224*4882a593Smuzhiyun in the second plane allows to easily find location of the pointer 225*4882a593Smuzhiyun array, which can be different for each frame. The size of the 226*4882a593Smuzhiyun pointer array is constant for given UYVY image height. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun In order to extract UYVY and JPEG frames an application can 229*4882a593Smuzhiyun initially set a data pointer to the start of first plane and then 230*4882a593Smuzhiyun add an offset from the first entry of the pointers table. Such a 231*4882a593Smuzhiyun pointer indicates start of an UYVY image pixel line. Whole UYVY 232*4882a593Smuzhiyun line can be copied to a separate buffer. These steps should be 233*4882a593Smuzhiyun repeated for each line, i.e. the number of entries in the pointer 234*4882a593Smuzhiyun array. Anything what's in between the UYVY lines is JPEG data and 235*4882a593Smuzhiyun should be concatenated to form the JPEG stream. 236*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-MT21C: 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun - ``V4L2_PIX_FMT_MT21C`` 239*4882a593Smuzhiyun - 'MT21' 240*4882a593Smuzhiyun - Compressed two-planar YVU420 format used by Mediatek MT8173. 241*4882a593Smuzhiyun The compression is lossless. 242*4882a593Smuzhiyun It is an opaque intermediate format and the MDP hardware must be 243*4882a593Smuzhiyun used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``, 244*4882a593Smuzhiyun ``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``. 245*4882a593Smuzhiyun * .. _V4L2-PIX-FMT-SUNXI-TILED-NV12: 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun - ``V4L2_PIX_FMT_SUNXI_TILED_NV12`` 248*4882a593Smuzhiyun - 'ST12' 249*4882a593Smuzhiyun - Two-planar NV12-based format used by the video engine found on Allwinner 250*4882a593Smuzhiyun (codenamed sunxi) platforms, with 32x32 tiles for the luminance plane 251*4882a593Smuzhiyun and 32x64 tiles for the chrominance plane. The data in each tile is 252*4882a593Smuzhiyun stored in linear order, within the tile bounds. Each tile follows the 253*4882a593Smuzhiyun previous one linearly in memory (from left to right, top to bottom). 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun The associated buffer dimensions are aligned to match an integer number 256*4882a593Smuzhiyun of tiles, resulting in 32-aligned resolutions for the luminance plane 257*4882a593Smuzhiyun and 16-aligned resolutions for the chrominance plane (with 2x2 258*4882a593Smuzhiyun subsampling). 259