1.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later 2 3******************************************************************************************************************************************************************************************************************************************************************************** 4V4L2_META_FMT_GENERIC_8 ('MET8'), V4L2_META_FMT_GENERIC_CSI2_10 ('MC1A'), V4L2_META_FMT_GENERIC_CSI2_12 ('MC1C'), V4L2_META_FMT_GENERIC_CSI2_14 ('MC1E'), V4L2_META_FMT_GENERIC_CSI2_16 ('MC1G'), V4L2_META_FMT_GENERIC_CSI2_20 ('MC1K'), V4L2_META_FMT_GENERIC_CSI2_24 ('MC1O') 5******************************************************************************************************************************************************************************************************************************************************************************** 6 7 8Generic line-based metadata formats 9 10 11Description 12=========== 13 14These generic line-based metadata formats define the memory layout of the data 15without defining the format or meaning of the metadata itself. 16 17.. _v4l2-meta-fmt-generic-8: 18 19V4L2_META_FMT_GENERIC_8 20----------------------- 21 22The V4L2_META_FMT_GENERIC_8 format is a plain 8-bit metadata format. This format 23is used on CSI-2 for 8 bits per :term:`Data Unit`. 24 25Additionally it is used for 16 bits per Data Unit when two bytes of metadata are 26packed into one 16-bit Data Unit. Otherwise the 16 bits per pixel dataformat is 27:ref:`V4L2_META_FMT_GENERIC_CSI2_16 <v4l2-meta-fmt-generic-csi2-16>`. 28 29**Byte Order Of V4L2_META_FMT_GENERIC_8.** 30Each cell is one byte. "M" denotes a byte of metadata. 31 32.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}| 33 34.. flat-table:: Sample 4x2 Metadata Frame 35 :header-rows: 0 36 :stub-columns: 0 37 :widths: 12 8 8 8 8 38 39 * - start + 0: 40 - M\ :sub:`00` 41 - M\ :sub:`10` 42 - M\ :sub:`20` 43 - M\ :sub:`30` 44 * - start + 4: 45 - M\ :sub:`01` 46 - M\ :sub:`11` 47 - M\ :sub:`21` 48 - M\ :sub:`31` 49 50.. _v4l2-meta-fmt-generic-csi2-10: 51 52V4L2_META_FMT_GENERIC_CSI2_10 53----------------------------- 54 55V4L2_META_FMT_GENERIC_CSI2_10 contains 8-bit generic metadata packed in 10-bit 56Data Units, with one padding byte after every four bytes of metadata. This 57format is typically used by CSI-2 receivers with a source that transmits 58MEDIA_BUS_FMT_META_10 and the CSI-2 receiver writes the received data to memory 59as-is. 60 61The packing of the data follows the MIPI CSI-2 specification and the padding of 62the data is defined in the MIPI CCS specification. 63 64This format is also used in conjunction with 20 bits per :term:`Data Unit` 65formats that pack two bytes of metadata into one Data Unit. Otherwise the 6620 bits per pixel dataformat is :ref:`V4L2_META_FMT_GENERIC_CSI2_20 67<v4l2-meta-fmt-generic-csi2-20>`. 68 69This format is little endian. 70 71**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_10.** 72Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 73 74.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}| 75 76.. flat-table:: Sample 4x2 Metadata Frame 77 :header-rows: 0 78 :stub-columns: 0 79 :widths: 12 8 8 8 8 8 80 81 * - start + 0: 82 - M\ :sub:`00` 83 - M\ :sub:`10` 84 - M\ :sub:`20` 85 - M\ :sub:`30` 86 - x 87 * - start + 5: 88 - M\ :sub:`01` 89 - M\ :sub:`11` 90 - M\ :sub:`21` 91 - M\ :sub:`31` 92 - x 93 94.. _v4l2-meta-fmt-generic-csi2-12: 95 96V4L2_META_FMT_GENERIC_CSI2_12 97----------------------------- 98 99V4L2_META_FMT_GENERIC_CSI2_12 contains 8-bit generic metadata packed in 12-bit 100Data Units, with one padding byte after every two bytes of metadata. This format 101is typically used by CSI-2 receivers with a source that transmits 102MEDIA_BUS_FMT_META_12 and the CSI-2 receiver writes the received data to memory 103as-is. 104 105The packing of the data follows the MIPI CSI-2 specification and the padding of 106the data is defined in the MIPI CCS specification. 107 108This format is also used in conjunction with 24 bits per :term:`Data Unit` 109formats that pack two bytes of metadata into one Data Unit. Otherwise the 11024 bits per pixel dataformat is :ref:`V4L2_META_FMT_GENERIC_CSI2_24 111<v4l2-meta-fmt-generic-csi2-24>`. 112 113This format is little endian. 114 115**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_12.** 116Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 117 118.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}|p{.8cm}| 119 120.. flat-table:: Sample 4x2 Metadata Frame 121 :header-rows: 0 122 :stub-columns: 0 123 :widths: 12 8 8 8 8 8 8 124 125 * - start + 0: 126 - M\ :sub:`00` 127 - M\ :sub:`10` 128 - x 129 - M\ :sub:`20` 130 - M\ :sub:`30` 131 - x 132 * - start + 6: 133 - M\ :sub:`01` 134 - M\ :sub:`11` 135 - x 136 - M\ :sub:`21` 137 - M\ :sub:`31` 138 - x 139 140.. _v4l2-meta-fmt-generic-csi2-14: 141 142V4L2_META_FMT_GENERIC_CSI2_14 143----------------------------- 144 145V4L2_META_FMT_GENERIC_CSI2_14 contains 8-bit generic metadata packed in 14-bit 146Data Units, with three padding bytes after every four bytes of metadata. This 147format is typically used by CSI-2 receivers with a source that transmits 148MEDIA_BUS_FMT_META_14 and the CSI-2 receiver writes the received data to memory 149as-is. 150 151The packing of the data follows the MIPI CSI-2 specification and the padding of 152the data is defined in the MIPI CCS specification. 153 154This format is little endian. 155 156**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_14.** 157Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 158 159.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{.8cm}| 160 161.. flat-table:: Sample 4x2 Metadata Frame 162 :header-rows: 0 163 :stub-columns: 0 164 :widths: 12 8 8 8 8 8 8 8 165 166 * - start + 0: 167 - M\ :sub:`00` 168 - M\ :sub:`10` 169 - M\ :sub:`20` 170 - M\ :sub:`30` 171 - x 172 - x 173 - x 174 * - start + 7: 175 - M\ :sub:`01` 176 - M\ :sub:`11` 177 - M\ :sub:`21` 178 - M\ :sub:`31` 179 - x 180 - x 181 - x 182 183.. _v4l2-meta-fmt-generic-csi2-16: 184 185V4L2_META_FMT_GENERIC_CSI2_16 186----------------------------- 187 188V4L2_META_FMT_GENERIC_CSI2_16 contains 8-bit generic metadata packed in 16-bit 189Data Units, with one padding byte after every byte of metadata. This format is 190typically used by CSI-2 receivers with a source that transmits 191MEDIA_BUS_FMT_META_16 and the CSI-2 receiver writes the received data to memory 192as-is. 193 194The packing of the data follows the MIPI CSI-2 specification and the padding of 195the data is defined in the MIPI CCS specification. 196 197Some devices support more efficient packing of metadata in conjunction with 19816-bit image data. In that case the dataformat is 199:ref:`V4L2_META_FMT_GENERIC_8 <v4l2-meta-fmt-generic-8>`. 200 201This format is little endian. 202 203**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_16.** 204Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 205 206.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}| 207 208.. flat-table:: Sample 4x2 Metadata Frame 209 :header-rows: 0 210 :stub-columns: 0 211 :widths: 12 8 8 8 8 8 8 8 8 212 213 * - start + 0: 214 - M\ :sub:`00` 215 - x 216 - M\ :sub:`10` 217 - x 218 - M\ :sub:`20` 219 - x 220 - M\ :sub:`30` 221 - x 222 * - start + 8: 223 - M\ :sub:`01` 224 - x 225 - M\ :sub:`11` 226 - x 227 - M\ :sub:`21` 228 - x 229 - M\ :sub:`31` 230 - x 231 232.. _v4l2-meta-fmt-generic-csi2-20: 233 234V4L2_META_FMT_GENERIC_CSI2_20 235----------------------------- 236 237V4L2_META_FMT_GENERIC_CSI2_20 contains 8-bit generic metadata packed in 20-bit 238Data Units, with alternating one or two padding bytes after every byte of 239metadata. This format is typically used by CSI-2 receivers with a source that 240transmits MEDIA_BUS_FMT_META_20 and the CSI-2 receiver writes the received data 241to memory as-is. 242 243The packing of the data follows the MIPI CSI-2 specification and the padding of 244the data is defined in the MIPI CCS specification. 245 246Some devices support more efficient packing of metadata in conjunction with 24716-bit image data. In that case the dataformat is 248:ref:`V4L2_META_FMT_GENERIC_CSI2_10 <v4l2-meta-fmt-generic-csi2-10>`. 249 250This format is little endian. 251 252**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_20.** 253Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 254 255.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}| 256 257.. flat-table:: Sample 4x2 Metadata Frame 258 :header-rows: 0 259 :stub-columns: 0 260 :widths: 12 8 8 8 8 8 8 8 8 8 8 261 262 * - start + 0: 263 - M\ :sub:`00` 264 - x 265 - M\ :sub:`10` 266 - x 267 - x 268 - M\ :sub:`20` 269 - x 270 - M\ :sub:`30` 271 - x 272 - x 273 * - start + 10: 274 - M\ :sub:`01` 275 - x 276 - M\ :sub:`11` 277 - x 278 - x 279 - M\ :sub:`21` 280 - x 281 - M\ :sub:`31` 282 - x 283 - x 284 285.. _v4l2-meta-fmt-generic-csi2-24: 286 287V4L2_META_FMT_GENERIC_CSI2_24 288----------------------------- 289 290V4L2_META_FMT_GENERIC_CSI2_24 contains 8-bit generic metadata packed in 24-bit 291Data Units, with two padding bytes after every byte of metadata. This format is 292typically used by CSI-2 receivers with a source that transmits 293MEDIA_BUS_FMT_META_24 and the CSI-2 receiver writes the received data to memory 294as-is. 295 296The packing of the data follows the MIPI CSI-2 specification and the padding of 297the data is defined in the MIPI CCS specification. 298 299Some devices support more efficient packing of metadata in conjunction with 30016-bit image data. In that case the dataformat is 301:ref:`V4L2_META_FMT_GENERIC_CSI2_12 <v4l2-meta-fmt-generic-csi2-12>`. 302 303This format is little endian. 304 305**Byte Order Of V4L2_META_FMT_GENERIC_CSI2_24.** 306Each cell is one byte. "M" denotes a byte of metadata and "x" a byte of padding. 307 308.. tabularcolumns:: |p{2.4cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}|p{1.2cm}|p{.8cm}|p{.8cm}| 309 310.. flat-table:: Sample 4x2 Metadata Frame 311 :header-rows: 0 312 :stub-columns: 0 313 :widths: 12 8 8 8 8 8 8 8 8 8 8 8 8 314 315 * - start + 0: 316 - M\ :sub:`00` 317 - x 318 - x 319 - M\ :sub:`10` 320 - x 321 - x 322 - M\ :sub:`20` 323 - x 324 - x 325 - M\ :sub:`30` 326 - x 327 - x 328 * - start + 12: 329 - M\ :sub:`01` 330 - x 331 - x 332 - M\ :sub:`11` 333 - x 334 - x 335 - M\ :sub:`21` 336 - x 337 - x 338 - M\ :sub:`31` 339 - x 340 - x 341