Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
v4l2-mediabus.h
Go to the documentation of this file.
1
/*
2
* Media Bus API header
3
*
4
* Copyright (C) 2009, Guennadi Liakhovetski <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*/
10
11
#ifndef __LINUX_V4L2_MEDIABUS_H
12
#define __LINUX_V4L2_MEDIABUS_H
13
14
#include <linux/types.h>
15
#include <linux/videodev2.h>
16
17
/*
18
* These pixel codes uniquely identify data formats on the media bus. Mostly
19
* they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is
20
* reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the
21
* data format is fixed. Additionally, "2X8" means that one pixel is transferred
22
* in two 8-bit samples, "BE" or "LE" specify in which order those samples are
23
* transferred over the bus: "LE" means that the least significant bits are
24
* transferred first, "BE" means that the most significant bits are transferred
25
* first, and "PADHI" and "PADLO" define which bits - low or high, in the
26
* incomplete high byte, are filled with padding bits.
27
*
28
* The pixel codes are grouped by type, bus_width, bits per component, samples
29
* per pixel and order of subsamples. Numerical values are sorted using generic
30
* numerical sort order (8 thus comes before 10).
31
*
32
* As their value can't change when a new pixel code is inserted in the
33
* enumeration, the pixel codes are explicitly given a numerical value. The next
34
* free values for each category are listed below, update them when inserting
35
* new pixel codes.
36
*/
37
enum
v4l2_mbus_pixelcode
{
38
V4L2_MBUS_FMT_FIXED
= 0x0001,
39
40
/* RGB - next is 0x1009 */
41
V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE
= 0x1001,
42
V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE
= 0x1002,
43
V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE
= 0x1003,
44
V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE
= 0x1004,
45
V4L2_MBUS_FMT_BGR565_2X8_BE
= 0x1005,
46
V4L2_MBUS_FMT_BGR565_2X8_LE
= 0x1006,
47
V4L2_MBUS_FMT_RGB565_2X8_BE
= 0x1007,
48
V4L2_MBUS_FMT_RGB565_2X8_LE
= 0x1008,
49
50
/* YUV (including grey) - next is 0x2014 */
51
V4L2_MBUS_FMT_Y8_1X8
= 0x2001,
52
V4L2_MBUS_FMT_UYVY8_1_5X8
= 0x2002,
53
V4L2_MBUS_FMT_VYUY8_1_5X8
= 0x2003,
54
V4L2_MBUS_FMT_YUYV8_1_5X8
= 0x2004,
55
V4L2_MBUS_FMT_YVYU8_1_5X8
= 0x2005,
56
V4L2_MBUS_FMT_UYVY8_2X8
= 0x2006,
57
V4L2_MBUS_FMT_VYUY8_2X8
= 0x2007,
58
V4L2_MBUS_FMT_YUYV8_2X8
= 0x2008,
59
V4L2_MBUS_FMT_YVYU8_2X8
= 0x2009,
60
V4L2_MBUS_FMT_Y10_1X10
= 0x200a,
61
V4L2_MBUS_FMT_YUYV10_2X10
= 0x200b,
62
V4L2_MBUS_FMT_YVYU10_2X10
= 0x200c,
63
V4L2_MBUS_FMT_Y12_1X12
= 0x2013,
64
V4L2_MBUS_FMT_UYVY8_1X16
= 0x200f,
65
V4L2_MBUS_FMT_VYUY8_1X16
= 0x2010,
66
V4L2_MBUS_FMT_YUYV8_1X16
= 0x2011,
67
V4L2_MBUS_FMT_YVYU8_1X16
= 0x2012,
68
V4L2_MBUS_FMT_YUYV10_1X20
= 0x200d,
69
V4L2_MBUS_FMT_YVYU10_1X20
= 0x200e,
70
71
/* Bayer - next is 0x3015 */
72
V4L2_MBUS_FMT_SBGGR8_1X8
= 0x3001,
73
V4L2_MBUS_FMT_SGBRG8_1X8
= 0x3013,
74
V4L2_MBUS_FMT_SGRBG8_1X8
= 0x3002,
75
V4L2_MBUS_FMT_SRGGB8_1X8
= 0x3014,
76
V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8
= 0x300b,
77
V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8
= 0x300c,
78
V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8
= 0x3009,
79
V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8
= 0x300d,
80
V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE
= 0x3003,
81
V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE
= 0x3004,
82
V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE
= 0x3005,
83
V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE
= 0x3006,
84
V4L2_MBUS_FMT_SBGGR10_1X10
= 0x3007,
85
V4L2_MBUS_FMT_SGBRG10_1X10
= 0x300e,
86
V4L2_MBUS_FMT_SGRBG10_1X10
= 0x300a,
87
V4L2_MBUS_FMT_SRGGB10_1X10
= 0x300f,
88
V4L2_MBUS_FMT_SBGGR12_1X12
= 0x3008,
89
V4L2_MBUS_FMT_SGBRG12_1X12
= 0x3010,
90
V4L2_MBUS_FMT_SGRBG12_1X12
= 0x3011,
91
V4L2_MBUS_FMT_SRGGB12_1X12
= 0x3012,
92
93
/* JPEG compressed formats - next is 0x4002 */
94
V4L2_MBUS_FMT_JPEG_1X8
= 0x4001,
95
96
/* Vendor specific formats - next is 0x5002 */
97
98
/* S5C73M3 sensor specific interleaved UYVY and JPEG */
99
V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8
= 0x5001,
100
};
101
110
struct
v4l2_mbus_framefmt {
111
__u32
width
;
112
__u32
height
;
113
__u32
code
;
114
__u32
field
;
115
__u32
colorspace
;
116
__u32
reserved
[7];
117
};
118
119
#endif
Generated on Thu Jan 10 2013 14:52:57 for Linux Kernel by
1.8.2