linux/include/uapi/linux/v4l2-mediabus.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * Media Bus API header
   4 *
   5 * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2 as
   9 * published by the Free Software Foundation.
  10 */
  11
  12#ifndef __LINUX_V4L2_MEDIABUS_H
  13#define __LINUX_V4L2_MEDIABUS_H
  14
  15#include <linux/media-bus-format.h>
  16#include <linux/types.h>
  17#include <linux/videodev2.h>
  18
  19/**
  20 * struct v4l2_mbus_framefmt - frame format on the media bus
  21 * @width:      image width
  22 * @height:     image height
  23 * @code:       data format code (from enum v4l2_mbus_pixelcode)
  24 * @field:      used interlacing type (from enum v4l2_field)
  25 * @colorspace: colorspace of the data (from enum v4l2_colorspace)
  26 * @ycbcr_enc:  YCbCr encoding of the data (from enum v4l2_ycbcr_encoding)
  27 * @quantization: quantization of the data (from enum v4l2_quantization)
  28 * @xfer_func:  transfer function of the data (from enum v4l2_xfer_func)
  29 */
  30struct v4l2_mbus_framefmt {
  31        __u32                   width;
  32        __u32                   height;
  33        __u32                   code;
  34        __u32                   field;
  35        __u32                   colorspace;
  36        __u16                   ycbcr_enc;
  37        __u16                   quantization;
  38        __u16                   xfer_func;
  39        __u16                   reserved[11];
  40};
  41
  42#ifndef __KERNEL__
  43/*
  44 * enum v4l2_mbus_pixelcode and its definitions are now deprecated, and
  45 * MEDIA_BUS_FMT_ definitions (defined in media-bus-format.h) should be
  46 * used instead.
  47 *
  48 * New defines should only be added to media-bus-format.h. The
  49 * v4l2_mbus_pixelcode enum is frozen.
  50 */
  51
  52#define V4L2_MBUS_FROM_MEDIA_BUS_FMT(name)      \
  53        V4L2_MBUS_FMT_ ## name = MEDIA_BUS_FMT_ ## name
  54
  55enum v4l2_mbus_pixelcode {
  56        V4L2_MBUS_FROM_MEDIA_BUS_FMT(FIXED),
  57
  58        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_BE),
  59        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB444_2X8_PADHI_LE),
  60        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_BE),
  61        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB555_2X8_PADHI_LE),
  62        V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_BE),
  63        V4L2_MBUS_FROM_MEDIA_BUS_FMT(BGR565_2X8_LE),
  64        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_BE),
  65        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB565_2X8_LE),
  66        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB666_1X18),
  67        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_1X24),
  68        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_BE),
  69        V4L2_MBUS_FROM_MEDIA_BUS_FMT(RGB888_2X12_LE),
  70        V4L2_MBUS_FROM_MEDIA_BUS_FMT(ARGB8888_1X32),
  71
  72        V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y8_1X8),
  73        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UV8_1X8),
  74        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1_5X8),
  75        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1_5X8),
  76        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1_5X8),
  77        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1_5X8),
  78        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_2X8),
  79        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_2X8),
  80        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_2X8),
  81        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_2X8),
  82        V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y10_1X10),
  83        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_2X10),
  84        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_2X10),
  85        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_2X10),
  86        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_2X10),
  87        V4L2_MBUS_FROM_MEDIA_BUS_FMT(Y12_1X12),
  88        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY8_1X16),
  89        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY8_1X16),
  90        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV8_1X16),
  91        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU8_1X16),
  92        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YDYUYDYV8_1X16),
  93        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY10_1X20),
  94        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY10_1X20),
  95        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV10_1X20),
  96        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU10_1X20),
  97        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUV10_1X30),
  98        V4L2_MBUS_FROM_MEDIA_BUS_FMT(AYUV8_1X32),
  99        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_2X12),
 100        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_2X12),
 101        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_2X12),
 102        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_2X12),
 103        V4L2_MBUS_FROM_MEDIA_BUS_FMT(UYVY12_1X24),
 104        V4L2_MBUS_FROM_MEDIA_BUS_FMT(VYUY12_1X24),
 105        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YUYV12_1X24),
 106        V4L2_MBUS_FROM_MEDIA_BUS_FMT(YVYU12_1X24),
 107
 108        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR8_1X8),
 109        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG8_1X8),
 110        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG8_1X8),
 111        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB8_1X8),
 112        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_ALAW8_1X8),
 113        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_ALAW8_1X8),
 114        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_ALAW8_1X8),
 115        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_ALAW8_1X8),
 116        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_DPCM8_1X8),
 117        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_DPCM8_1X8),
 118        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_DPCM8_1X8),
 119        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_DPCM8_1X8),
 120        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_BE),
 121        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADHI_LE),
 122        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_BE),
 123        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_2X8_PADLO_LE),
 124        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR10_1X10),
 125        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG10_1X10),
 126        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG10_1X10),
 127        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB10_1X10),
 128        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SBGGR12_1X12),
 129        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGBRG12_1X12),
 130        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SGRBG12_1X12),
 131        V4L2_MBUS_FROM_MEDIA_BUS_FMT(SRGGB12_1X12),
 132
 133        V4L2_MBUS_FROM_MEDIA_BUS_FMT(JPEG_1X8),
 134
 135        V4L2_MBUS_FROM_MEDIA_BUS_FMT(S5C_UYVY_JPEG_1X8),
 136
 137        V4L2_MBUS_FROM_MEDIA_BUS_FMT(AHSV8888_1X32),
 138};
 139#endif /* __KERNEL__ */
 140
 141#endif
 142