/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Media Bus API header
*
* Copyright ( C ) 2009 , Guennadi Liakhovetski < g . liakhovetski @ gmx . de >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
#ifndef __LINUX_MEDIA_BUS_FORMAT_H
#define __LINUX_MEDIA_BUS_FORMAT_H
/*
* These bus formats uniquely identify data formats on the data bus . Format 0
* is reserved , MEDIA_BUS_FMT_FIXED shall be used by host - client pairs , where
* the data format is fixed . Additionally , " 2 X8 " means that one pixel is
* transferred in two 8 - bit samples , " BE " or " LE " specify in which order those
* samples are transferred over the bus : " LE " means that the least significant
* bits are 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 bus formats are grouped by type , bus_width , bits per component , samples
* per pixel and order of subsamples . Numerical values are sorted using generic
* numerical sort order ( 8 thus comes before 10 ) .
*
* As their value can ' t change when a new bus format is inserted in the
* enumeration , the bus formats are explicitly given a numerical value . The next
* free values for each category are listed below , update them when inserting
* new pixel codes .
*/
#define MEDIA_BUS_FMT_FIXED 0 x0001
/* RGB - next is 0x1028 */
#define MEDIA_BUS_FMT_RGB444_1X12 0 x1016
#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0 x1001
#define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0 x1002
#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE 0 x1003
#define MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE 0 x1004
#define MEDIA_BUS_FMT_RGB565_1X16 0 x1017
#define MEDIA_BUS_FMT_BGR565_2X8_BE 0 x1005
#define MEDIA_BUS_FMT_BGR565_2X8_LE 0 x1006
#define MEDIA_BUS_FMT_RGB565_2X8_BE 0 x1007
#define MEDIA_BUS_FMT_RGB565_2X8_LE 0 x1008
#define MEDIA_BUS_FMT_RGB666_1X18 0 x1009
#define MEDIA_BUS_FMT_RGB666_2X9_BE 0 x1025
#define MEDIA_BUS_FMT_BGR666_1X18 0 x1023
#define MEDIA_BUS_FMT_RBG888_1X24 0 x100e
#define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0 x1015
#define MEDIA_BUS_FMT_BGR666_1X24_CPADHI 0 x1024
#define MEDIA_BUS_FMT_RGB565_1X24_CPADHI 0 x1022
#define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0 x1010
#define MEDIA_BUS_FMT_BGR888_1X24 0 x1013
#define MEDIA_BUS_FMT_BGR888_3X8 0 x101b
#define MEDIA_BUS_FMT_GBR888_1X24 0 x1014
#define MEDIA_BUS_FMT_RGB888_1X24 0 x100a
#define MEDIA_BUS_FMT_RGB888_2X12_BE 0 x100b
#define MEDIA_BUS_FMT_RGB888_2X12_LE 0 x100c
#define MEDIA_BUS_FMT_RGB888_3X8 0 x101c
#define MEDIA_BUS_FMT_RGB888_3X8_DELTA 0 x101d
#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0 x1011
#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0 x1012
#define MEDIA_BUS_FMT_RGB666_1X30_CPADLO 0 x101e
#define MEDIA_BUS_FMT_RGB888_1X30_CPADLO 0 x101f
#define MEDIA_BUS_FMT_ARGB8888_1X32 0 x100d
#define MEDIA_BUS_FMT_RGB888_1X32_PADHI 0 x100f
#define MEDIA_BUS_FMT_RGB101010_1X30 0 x1018
#define MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG 0 x1026
#define MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA 0 x1027
#define MEDIA_BUS_FMT_RGB666_1X36_CPADLO 0 x1020
#define MEDIA_BUS_FMT_RGB888_1X36_CPADLO 0 x1021
#define MEDIA_BUS_FMT_RGB121212_1X36 0 x1019
#define MEDIA_BUS_FMT_RGB161616_1X48 0 x101a
/* YUV (including grey) - next is 0x202f */
#define MEDIA_BUS_FMT_Y8_1X8 0 x2001
#define MEDIA_BUS_FMT_UV8_1X8 0 x2015
#define MEDIA_BUS_FMT_UYVY8_1_5X8 0 x2002
#define MEDIA_BUS_FMT_VYUY8_1_5X8 0 x2003
#define MEDIA_BUS_FMT_YUYV8_1_5X8 0 x2004
#define MEDIA_BUS_FMT_YVYU8_1_5X8 0 x2005
#define MEDIA_BUS_FMT_UYVY8_2X8 0 x2006
#define MEDIA_BUS_FMT_VYUY8_2X8 0 x2007
#define MEDIA_BUS_FMT_YUYV8_2X8 0 x2008
#define MEDIA_BUS_FMT_YVYU8_2X8 0 x2009
#define MEDIA_BUS_FMT_Y10_1X10 0 x200a
#define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0 x202c
#define MEDIA_BUS_FMT_UYVY10_2X10 0 x2018
#define MEDIA_BUS_FMT_VYUY10_2X10 0 x2019
#define MEDIA_BUS_FMT_YUYV10_2X10 0 x200b
#define MEDIA_BUS_FMT_YVYU10_2X10 0 x200c
#define MEDIA_BUS_FMT_Y12_1X12 0 x2013
#define MEDIA_BUS_FMT_UYVY12_2X12 0 x201c
#define MEDIA_BUS_FMT_VYUY12_2X12 0 x201d
#define MEDIA_BUS_FMT_YUYV12_2X12 0 x201e
#define MEDIA_BUS_FMT_YVYU12_2X12 0 x201f
#define MEDIA_BUS_FMT_Y14_1X14 0 x202d
#define MEDIA_BUS_FMT_Y16_1X16 0 x202e
#define MEDIA_BUS_FMT_UYVY8_1X16 0 x200f
#define MEDIA_BUS_FMT_VYUY8_1X16 0 x2010
#define MEDIA_BUS_FMT_YUYV8_1X16 0 x2011
#define MEDIA_BUS_FMT_YVYU8_1X16 0 x2012
#define MEDIA_BUS_FMT_YDYUYDYV8_1X16 0 x2014
#define MEDIA_BUS_FMT_UYVY10_1X20 0 x201a
#define MEDIA_BUS_FMT_VYUY10_1X20 0 x201b
#define MEDIA_BUS_FMT_YUYV10_1X20 0 x200d
#define MEDIA_BUS_FMT_YVYU10_1X20 0 x200e
#define MEDIA_BUS_FMT_VUY8_1X24 0 x2024
#define MEDIA_BUS_FMT_YUV8_1X24 0 x2025
#define MEDIA_BUS_FMT_UYYVYY8_0_5X24 0 x2026
#define MEDIA_BUS_FMT_UYVY12_1X24 0 x2020
#define MEDIA_BUS_FMT_VYUY12_1X24 0 x2021
#define MEDIA_BUS_FMT_YUYV12_1X24 0 x2022
#define MEDIA_BUS_FMT_YVYU12_1X24 0 x2023
#define MEDIA_BUS_FMT_YUV10_1X30 0 x2016
#define MEDIA_BUS_FMT_UYYVYY10_0_5X30 0 x2027
#define MEDIA_BUS_FMT_AYUV8_1X32 0 x2017
#define MEDIA_BUS_FMT_UYYVYY12_0_5X36 0 x2028
#define MEDIA_BUS_FMT_YUV12_1X36 0 x2029
#define MEDIA_BUS_FMT_YUV16_1X48 0 x202a
#define MEDIA_BUS_FMT_UYYVYY16_0_5X48 0 x202b
/* Bayer - next is 0x3021 */
#define MEDIA_BUS_FMT_SBGGR8_1X8 0 x3001
#define MEDIA_BUS_FMT_SGBRG8_1X8 0 x3013
#define MEDIA_BUS_FMT_SGRBG8_1X8 0 x3002
#define MEDIA_BUS_FMT_SRGGB8_1X8 0 x3014
#define MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8 0 x3015
#define MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8 0 x3016
#define MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8 0 x3017
#define MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8 0 x3018
#define MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8 0 x300b
#define MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8 0 x300c
#define MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8 0 x3009
#define MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8 0 x300d
#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE 0 x3003
#define MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE 0 x3004
#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE 0 x3005
#define MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE 0 x3006
#define MEDIA_BUS_FMT_SBGGR10_1X10 0 x3007
#define MEDIA_BUS_FMT_SGBRG10_1X10 0 x300e
#define MEDIA_BUS_FMT_SGRBG10_1X10 0 x300a
#define MEDIA_BUS_FMT_SRGGB10_1X10 0 x300f
#define MEDIA_BUS_FMT_SBGGR12_1X12 0 x3008
#define MEDIA_BUS_FMT_SGBRG12_1X12 0 x3010
#define MEDIA_BUS_FMT_SGRBG12_1X12 0 x3011
#define MEDIA_BUS_FMT_SRGGB12_1X12 0 x3012
#define MEDIA_BUS_FMT_SBGGR14_1X14 0 x3019
#define MEDIA_BUS_FMT_SGBRG14_1X14 0 x301a
#define MEDIA_BUS_FMT_SGRBG14_1X14 0 x301b
#define MEDIA_BUS_FMT_SRGGB14_1X14 0 x301c
#define MEDIA_BUS_FMT_SBGGR16_1X16 0 x301d
#define MEDIA_BUS_FMT_SGBRG16_1X16 0 x301e
#define MEDIA_BUS_FMT_SGRBG16_1X16 0 x301f
#define MEDIA_BUS_FMT_SRGGB16_1X16 0 x3020
/* JPEG compressed formats - next is 0x4002 */
#define MEDIA_BUS_FMT_JPEG_1X8 0 x4001
/* Vendor specific formats - next is 0x5002 */
/* S5C73M3 sensor specific interleaved UYVY and JPEG */
#define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 0 x5001
/* HSV - next is 0x6002 */
#define MEDIA_BUS_FMT_AHSV8888_1X32 0 x6001
/*
* This format should be used when the same driver handles
* both sides of the link and the bus format is a fixed
* metadata format that is not configurable from userspace .
* Width and height will be set to 0 for this format .
*/
#define MEDIA_BUS_FMT_METADATA_FIXED 0 x7001
/* Generic line based metadata formats for serial buses. Next is 0x8008. */
#define MEDIA_BUS_FMT_META_8 0 x8001
#define MEDIA_BUS_FMT_META_10 0 x8002
#define MEDIA_BUS_FMT_META_12 0 x8003
#define MEDIA_BUS_FMT_META_14 0 x8004
#define MEDIA_BUS_FMT_META_16 0 x8005
#define MEDIA_BUS_FMT_META_20 0 x8006
#define MEDIA_BUS_FMT_META_24 0 x8007
#endif /* __LINUX_MEDIA_BUS_FORMAT_H */
Messung V0.5 in Prozent C=96 H=97 G=96
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland