155 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * Media Bus API header4 *5 * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>6 */7 8#ifndef __LINUX_V4L2_MEDIABUS_H9#define __LINUX_V4L2_MEDIABUS_H10 11#include <linux/media-bus-format.h>12#include <linux/types.h>13#include <linux/videodev2.h>14 15#define V4L2_MBUS_FRAMEFMT_SET_CSC 0x000116 17/**18 * struct v4l2_mbus_framefmt - frame format on the media bus19 * @width: image width20 * @height: image height21 * @code: data format code (from enum v4l2_mbus_pixelcode)22 * @field: used interlacing type (from enum v4l2_field), zero for metadata23 * mbus codes24 * @colorspace: colorspace of the data (from enum v4l2_colorspace), zero on25 * metadata mbus codes26 * @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding), zero27 * for metadata mbus codes28 * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding), zero for29 * metadata mbus codes30 * @quantization: quantization of the data (from enum v4l2_quantization), zero31 * for metadata mbus codes32 * @xfer_func: transfer function of the data (from enum v4l2_xfer_func), zero33 * for metadata mbus codes34 * @flags: flags (V4L2_MBUS_FRAMEFMT_*)35 * @reserved: reserved bytes that can be later used36 */37struct v4l2_mbus_framefmt {38 __u32 width;39 __u32 height;40 __u32 code;41 __u32 field;42 __u32 colorspace;43 union {44 /* enum v4l2_ycbcr_encoding */45 __u16 ycbcr_enc;46 /* enum v4l2_hsv_encoding */47 __u16 hsv_enc;48 };49 __u16 quantization;50 __u16 xfer_func;51 __u16 flags;52 __u16 reserved[10];53};54 55#ifndef __KERNEL__56/*57 * enum v4l2_mbus_pixelcode and its definitions are now deprecated, and58 * MEDIA_BUS_FMT_ definitions (defined in media-bus-format.h) should be59 * used instead.60 *61 * New defines should only be added to media-bus-format.h. The62 * v4l2_mbus_pixelcode enum is frozen.63 */64 65#define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name) \66 V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name67 68enum v4l2_mbus_pixelcode {69 V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED),70 71 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE),72 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE),73 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE),74 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE),75 V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE),76 V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE),77 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE),78 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE),79 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18),80 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24),81 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE),82 V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE),83 V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32),84 85 V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8),86 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8),87 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8),88 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8),89 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8),90 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8),91 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8),92 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8),93 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8),94 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8),95 V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10),96 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10),97 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10),98 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10),99 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10),100 V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12),101 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16),102 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16),103 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16),104 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16),105 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16),106 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20),107 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20),108 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20),109 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20),110 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30),111 V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32),112 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12),113 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12),114 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12),115 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12),116 V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24),117 V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24),118 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24),119 V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24),120 121 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8),122 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8),123 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8),124 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8),125 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8),126 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8),127 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8),128 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8),129 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8),130 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8),131 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8),132 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8),133 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE),134 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE),135 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE),136 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE),137 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10),138 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10),139 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10),140 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10),141 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12),142 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12),143 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12),144 V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12),145 146 V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8),147 148 V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8),149 150 V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32),151};152#endif /* __KERNEL__ */153 154#endif155