More V4L2_PIX_FMT formats
[cl-v4l2.git] / grovel.lisp
blob0e58e4b49299b71cebbd9caf351672d12d547e5f
1 (include "linux/videodev2.h")
3 (in-package :cl-v4l2)
5 ;; ioctl requests
6 (constant (vidioc-querycap "VIDIOC_QUERYCAP"))
7 (constant (vidioc-get-parm "VIDIOC_G_PARM"))
8 (constant (vidioc-get-tuner "VIDIOC_G_TUNER"))
9 (constant (vidioc-enuminput "VIDIOC_ENUMINPUT"))
10 (constant (vidioc-enumstd "VIDIOC_ENUMSTD"))
11 (constant (vidioc-enum-fmt "VIDIOC_ENUM_FMT"))
12 (constant (vidioc-set-input "VIDIOC_S_INPUT"))
13 (constant (vidioc-set-fmt "VIDIOC_S_FMT"))
14 (constant (vidioc-get-fmt "VIDIOC_G_FMT"))
15 (constant (vidioc-reqbufs "VIDIOC_REQBUFS"))
16 (constant (vidioc-querybuf "VIDIOC_QUERYBUF"))
17 (constant (vidioc-qbuf "VIDIOC_QBUF"))
18 (constant (vidioc-dqbuf "VIDIOC_DQBUF"))
19 (constant (vidioc-stream-on "VIDIOC_STREAMON"))
20 (constant (vidioc-stream-off "VIDIOC_STREAMOFF"))
22 ;; capabilities
24 (constant (cap-video-capture "V4L2_CAP_VIDEO_CAPTURE")
25 :documentation "Is a video capture device")
27 (constant (cap-video-output "V4L2_CAP_VIDEO_OUTPUT")
28 :documentation "Is a video output device")
30 (constant (cap-video-overlay "V4L2_CAP_VIDEO_OVERLAY")
31 :documentation "Can do video overlay")
33 (constant (cap-vbi-capture "V4L2_CAP_VBI_CAPTURE")
34 :documentation "Is a raw VBI capture device")
36 (constant (cap-vbi-output "V4L2_CAP_VBI_OUTPUT")
37 :documentation "Is a raw VBI output device")
39 (constant (cap-sliced-vbi-capture "V4L2_CAP_SLICED_VBI_CAPTURE")
40 :documentation "Is a sliced VBI capture device")
42 (constant (cap-sliced-vbi-output "V4L2_CAP_SLICED_VBI_OUTPUT")
43 :documentation "Is a sliced VBI output device")
45 (constant (cap-rds-capture "V4L2_CAP_RDS_CAPTURE")
46 :documentation "RDS data capture")
48 (constant (cap-video-output-overlay "V4L2_CAP_VIDEO_OUTPUT_OVERLAY")
49 :documentation "Can do video output overlay")
51 (constant (cap-hw-freq-seek "V4L2_CAP_HW_FREQ_SEEK")
52 :documentation "Can do hardware frequency seek")
54 (constant (cap-tuner "V4L2_CAP_TUNER")
55 :documentation "has a tuner")
57 (constant (cap-audio "V4L2_CAP_AUDIO")
58 :documentation "has audio support")
60 (constant (cap-radio "V4L2_CAP_RADIO")
61 :documentation "is a radio device")
63 (constant (cap-readwrite "V4L2_CAP_READWRITE")
64 :documentation "read/write systemcalls")
66 (constant (cap-asyncio "V4L2_CAP_ASYNCIO")
67 :documentation "async I/O")
69 (constant (cap-streaming "V4L2_CAP_STREAMING")
70 :documentation "streaming I/O ioctls")
72 ;; Pixel formats
74 (constant (pix-fmt-rgb332 "V4L2_PIX_FMT_RGB332")
75 :documentation "RGB1 8 RGB-3-3-2")
76 (constant (pix-fmt-rgb444 "V4L2_PIX_FMT_RGB444")
77 :documentation "R444 16 xxxxrrrr ggggbbbb")
78 (constant (pix-fmt-rgb555 "V4L2_PIX_FMT_RGB555")
79 :documentation "RGBO 16 RGB-5-5-5")
80 (constant (pix-fmt-rgb565 "V4L2_PIX_FMT_RGB565")
81 :documentation "RGBP 16 RGB-5-6-5")
82 (constant (pix-fmt-rgb555x "V4L2_PIX_FMT_RGB555X")
83 :documentation "RGBQ 16 RGB-5-5-5 BE")
84 (constant (pix-fmt-rgb565x "V4L2_PIX_FMT_RGB565X")
85 :documentation "RGBR 16 RGB-5-6-5 BE")
86 (constant (pix-fmt-bgr24 "V4L2_PIX_FMT_BGR24")
87 :documentation "BGR3 24 BGR-8-8-8")
88 (constant (pix-fmt-rgb24 "V4L2_PIX_FMT_RGB24")
89 :documentation "RGB3 24 RGB-8-8-8")
90 (constant (pix-fmt-bgr32 "V4L2_PIX_FMT_BGR32")
91 :documentation "BGR4 32 BGR-8-8-8-8")
92 (constant (pix-fmt-rgb32 "V4L2_PIX_FMT_RGB32")
93 :documentation "RGB4 32 RGB-8-8-8-8")
94 (constant (pix-fmt-grey "V4L2_PIX_FMT_GREY")
95 :documentation "GREY 8 Greyscale")
96 (constant (pix-fmt-y16 "V4L2_PIX_FMT_Y16")
97 :documentation "Y16 16 Greyscale")
98 (constant (pix-fmt-pal8 "V4L2_PIX_FMT_PAL8")
99 :documentation "PAL8 8 8-bit palette")
100 (constant (pix-fmt-yvu410 "V4L2_PIX_FMT_YVU410")
101 :documentation "YVU9 9 YVU 4:1:0")
102 (constant (pix-fmt-yvu420 "V4L2_PIX_FMT_YVU420")
103 :documentation "YV12 12 YVU 4:2:0")
104 (constant (pix-fmt-yuyv "V4L2_PIX_FMT_YUYV")
105 :documentation "YUYV 16 YUV 4:2:2")
106 (constant (pix-fmt-uyvy "V4L2_PIX_FMT_UYVY")
107 :documentation "UYVY 16 YUV 4:2:2")
108 (constant (pix-fmt-vyuy "V4L2_PIX_FMT_VYUY")
109 :documentation "VYUY 16 YUV 4:2:2")
110 (constant (pix-fmt-yuv422p "V4L2_PIX_FMT_YUV422P")
111 :documentation "422P 16 YVU422 planar")
112 (constant (pix-fmt-yuv411p "V4L2_PIX_FMT_YUV411P")
113 :documentation "411P 16 YVU411 planar")
114 (constant (pix-fmt-y41p "V4L2_PIX_FMT_Y41P")
115 :documentation "Y41P 12 YUV 4:1:1")
116 (constant (pix-fmt-yuv444 "V4L2_PIX_FMT_YUV444")
117 :documentation "Y444 16 xxxxyyyy uuuuvvvv")
118 (constant (pix-fmt-yuv555 "V4L2_PIX_FMT_YUV555")
119 :documentation "YUVO 16 YUV-5-5-5")
120 (constant (pix-fmt-yuv565 "V4L2_PIX_FMT_YUV565")
121 :documentation "YUVP 16 YUV-5-6-5")
122 (constant (pix-fmt-yuv32 "V4L2_PIX_FMT_YUV32")
123 :documentation "YUV4 32 YUV-8-8-8-8")
125 ;; two planes -- one Y, one Cr + Cb interleaved
126 (constant (pix-fmt-nv12 "V4L2_PIX_FMT_NV12")
127 :documentation "NV12 12 Y/CbCr 4:2:0")
128 (constant (pix-fmt-nv21 "V4L2_PIX_FMT_NV21")
129 :documentation "NV21 12 Y/CrCb 4:2:0")
130 (constant (pix-fmt-nv16 "V4L2_PIX_FMT_NV16")
131 :documentation "NV16 16 Y/CbCr 4:2:2")
132 (constant (pix-fmt-nv61 "V4L2_PIX_FMT_NV61")
133 :documentation "NV61 16 Y/CrCb 4:2:2")
135 ;; The following formats are not defined in the V4L2 specification
136 (constant (pix-fmt-yuv410 "V4L2_PIX_FMT_YUV410")
137 :documentation "YUV9 9 YUV 4:1:0")
138 (constant (pix-fmt-yuv420 "V4L2_PIX_FMT_YUV420")
139 :documentation "YU12 12 YUV 4:2:0")
140 (constant (pix-fmt-yyuv "V4L2_PIX_FMT_YYUV")
141 :documentation "YYUV 16 YUV 4:2:2")
142 (constant (pix-fmt-hi240 "V4L2_PIX_FMT_HI240")
143 :documentation "HI24 8 8-bit color")
144 (constant (pix-fmt-hm12 "V4L2_PIX_FMT_HM12")
145 :documentation "HM12 8 YUV 4:2:0 16x16 macroblocks")
147 ;; see http://www.siliconimaging.com/RGB%20Bayer.htm
148 (constant (pix-fmt-sbggr8 "V4L2_PIX_FMT_SBGGR8")
149 :documentation "BA81 8 BGBG.. GRGR")
150 (constant (pix-fmt-sgbrg8 "V4L2_PIX_FMT_SGBRG8")
151 :documentation "GBRG 8 GBGB.. RGRG")
153 ;; 10bit raw bayer, expanded to 16 bits
154 ;; xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb...
156 (constant (pix-fmt-sgrbg10 "V4L2_PIX_FMT_SGRBG10")
157 :documentation "BA10")
159 ;; 10bit raw bayer DPCM compressed to 8 bits */
160 (constant (pix-fmt-sgrbg10dpcm8 "V4L2_PIX_FMT_SGRBG10DPCM8")
161 :documentation "BD10")
162 (constant (pix-fmt-sbggr16 "V4L2_PIX_FMT_SBGGR16")
163 :documentation "BYR2 16 BGBG.. GRGR..")
165 ;; compressed formats
166 (constant (pix-fmt-mjpeg "V4L2_PIX_FMT_MJPEG")
167 :documentation "MJPG Motion-JPEG")
168 (constant (pix-fmt-jpeg "V4L2_PIX_FMT_JPEG")
169 :documentation "JPEG JFIF JPEG")
170 (constant (pix-fmt-dv "V4L2_PIX_FMT_DV")
171 :documentation "dvsd 1394")
172 (constant (pix-fmt-mpeg "V4L2_PIX_FMT_MPEG")
173 :documentation "MPEG MPEG-1/2/4")
175 ;; Vendor-specific formats
177 (constant (pix-fmt-wnva "V4L2_PIX_FMT_WNVA")
178 :documentation "WNVA Winnov hw compress")
179 (constant (pix-fmt-sn9c10x "V4L2_PIX_FMT_SN9C10X")
180 :documentation "S910 SN9C10x compression")
181 (constant (pix-fmt-pwc1 "V4L2_PIX_FMT_PWC1")
182 :documentation "PWC1 pwc older webcam")
183 (constant (pix-fmt-pwc2 "V4L2_PIX_FMT_PWC2")
184 :documentation "PWC2 pwc newer webcam")
185 (constant (pix-fmt-et61x251 "V4L2_PIX_FMT_ET61X251")
186 :documentation "E625 ET61X251 compression")
187 (constant (pix-fmt-spca501 "V4L2_PIX_FMT_SPCA501")
188 :documentation "S501 YUYV per line")
189 (constant (pix-fmt-spca505 "V4L2_PIX_FMT_SPCA505")
190 :documentation "S505 YYUV per line")
191 (constant (pix-fmt-spca508 "V4L2_PIX_FMT_SPCA508")
192 :documentation "S508 YUVY per line")
193 (constant (pix-fmt-spca561 "V4L2_PIX_FMT_SPCA561")
194 :documentation "S561 compressed GBRG bayer")
195 (constant (pix-fmt-pac207 "V4L2_PIX_FMT_PAC207")
196 :documentation "P207 compressed BGGR bayer")
197 (constant (pix-fmt-mr97310a "V4L2_PIX_FMT_MR97310A")
198 :documentation "M310 compressed BGGR bayer")
199 (constant (pix-fmt-sq905c "V4L2_PIX_FMT_SQ905C")
200 :documentation "905C compressed RGGB bayer")
201 (constant (pix-fmt-pjpg "V4L2_PIX_FMT_PJPG")
202 :documentation "PJPG Pixart 73xx JPEG")
203 (constant (pix-fmt-yvyu "V4L2_PIX_FMT_YVYU")
204 :documentation "YVYU 16 YVU 4:2:2")
206 ;; Flags for v4l2-buffer 'flags' field
207 (constant (buf-flag-mapped "V4L2_BUF_FLAG_MAPPED")
208 :documentation "Buffer is mapped (flag)")
210 (constant (buf-flag-queued "V4L2_BUF_FLAG_QUEUED")
211 :documentation "Buffer is queued for processing")
213 (constant (buf-flag-done "V4L2_BUF_FLAG_DONE")
214 :documentation "Buffer is ready")
216 (constant (buf-flag-keyframe "V4L2_BUF_FLAG_KEYFRAME")
217 :documentation "Image is a keyframe (I-frame)")
219 (constant (buf-flag-pframe "V4L2_BUF_FLAG_PFRAME")
220 :documentation "Image is a P-frame")
222 (constant (buf-flag-bframe "V4L2_BUF_FLAG_BFRAME")
223 :documentation "Image is a B-frame")
225 (constant (buf-flag-timecode "V4L2_BUF_FLAG_TIMECODE")
226 :documentation "timecode field is valid")
228 (constant (buf-flag-input "V4L2_BUF_FLAG_INPUT")
229 :documentation "input field is valid")