cameleon_device/
pixel_format.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5#![allow(clippy::upper_case_acronyms)]
6
7use std::convert::TryFrom;
8
9#[allow(clippy::enum_glob_use)]
10use PixelFormat::*;
11
12#[allow(non_camel_case_types)]
13#[derive(Debug, Clone, Copy, PartialEq, Eq)]
14pub enum PixelFormat {
15    /// Monochrome 8-bit.
16    Mono8,
17
18    /// Monochrome 8-bit signed.
19    Mono8s,
20
21    /// Monochrome 10-bit unpacked.
22    Mono10,
23
24    /// Monochrome 10-bit packed.
25    Mono10Packed,
26
27    /// Monochrome 12-bit unpacked.
28    Mono12,
29
30    /// Monochrome 12-bit packed.
31    Mono12Packed,
32
33    /// Monochrome 16-bit.
34    Mono16,
35
36    /// Bayer Green-Red 8-bit.
37    BayerGR8,
38
39    /// Bayer Red-Green 8-bit.
40    BayerRG8,
41
42    /// Bayer Green-Blue 8-bit.
43    BayerGB8,
44
45    /// Bayer Blue-Green 8-bit.
46    BayerBG8,
47
48    /// Bayer Green-Red 10-bit unpacked.
49    BayerGR10,
50
51    /// Bayer Red-Green 10-bit unpacked.
52    BayerRG10,
53
54    /// Bayer Green-Blue 10-bit unpacked.
55    BayerGB10,
56
57    /// Bayer Blue-Green 10-bit unpacked.
58    BayerBG10,
59
60    /// Bayer Green-Red 12-bit unpacked.
61    BayerGR12,
62
63    /// Bayer Red-Green 12-bit unpacked.
64    BayerRG12,
65
66    /// Bayer Green-Blue 12-bit unpacked.
67    BayerGB12,
68
69    /// Bayer Blue-Green 12-bit unpacked.
70    BayerBG12,
71
72    /// Red-Green-Blue 8-bit.
73    RGB8,
74
75    /// Blue-Green-Red 8-bit.
76    BGR8,
77
78    /// Red-Green-Blue-alpha 8-bit.
79    RGBa8,
80
81    /// Blue-Green-Red-alpha 8-bit.
82    BGRa8,
83
84    /// Red-Green-Blue 10-bit unpacked.
85    RGB10,
86
87    /// Blue-Green-Red 10-bit unpacked.
88    BGR10,
89
90    /// Red-Green-Blue 12-bit unpacked.
91    RGB12,
92
93    /// Blue-Green-Red 12-bit unpacked.
94    BGR12,
95
96    /// YUV 4:4:4 8-bit.
97    YUV8_UYV,
98
99    /// Red-Green-Blue 8-bit planar.
100    RGB8_Planar,
101
102    /// Red-Green-Blue 10-bit unpacked planar.
103    RGB10_Planar,
104
105    /// Red-Green-Blue 12-bit unpacked planar.
106    RGB12_Planar,
107
108    /// Red-Green-Blue 16-bit planar.
109    RGB16_Planar,
110
111    /// Monochrome 14-bit unpacked.
112    Mono14,
113
114    /// Bayer Green-Red 10-bit packed.
115    BayerGR10Packed,
116
117    /// Bayer Red-Green 10-bit packed.
118    BayerRG10Packed,
119
120    /// Bayer Green-Blue 10-bit packed.
121    BayerGB10Packed,
122
123    /// Bayer Blue-Green 10-bit packed.
124    BayerBG10Packed,
125
126    /// Bayer Green-Red 12-bit packed.
127    BayerGR12Packed,
128
129    /// Bayer Red-Green 12-bit packed.
130    BayerRG12Packed,
131
132    /// Bayer Green-Blue 12-bit packed.
133    BayerGB12Packed,
134
135    /// Bayer Blue-Green 12-bit packed.
136    BayerBG12Packed,
137
138    /// Bayer Green-Red 16-bit.
139    BayerGR16,
140
141    /// Bayer Red-Green 16-bit.
142    BayerRG16,
143
144    /// Bayer Green-Blue 16-bit.
145    BayerGB16,
146
147    /// Bayer Blue-Green 16-bit.
148    BayerBG16,
149
150    /// YUV 4:2:2 8-bit.
151    YUV422_8,
152
153    /// Red-Green-Blue 16-bit.
154    RGB16,
155
156    /// Red-Green-Blue 12-bit packed - variant 1.
157    RGB12V1Packed,
158
159    /// Red-Green-Blue 5/6/5-bit packed.
160    RGB565p,
161
162    /// Blue-Green-Red 5/6/5-bit packed.
163    BGR565p,
164
165    /// Monochrome 1-bit packed.
166    Mono1p,
167
168    /// Monochrome 2-bit packed.
169    Mono2p,
170
171    /// Monochrome 4-bit packed.
172    Mono4p,
173
174    /// YCbCr 4:4:4 8-bit.
175    YCbCr8_CbYCr,
176
177    /// YCbCr 4:2:2 8-bit.
178    YCbCr422_8,
179
180    /// YCbCr 4:1:1 8-bit.
181    YCbCr411_8_CbYYCrYY,
182
183    /// YCbCr 4:4:4 8-bit BT.601.
184    YCbCr601_8_CbYCr,
185
186    /// YCbCr 4:2:2 8-bit BT.601.
187    YCbCr601_422_8,
188
189    /// YCbCr 4:1:1 8-bit BT.601.
190    YCbCr601_411_8_CbYYCrYY,
191
192    /// YCbCr 4:4:4 8-bit BT.709.
193    YCbCr709_8_CbYCr,
194
195    /// YCbCr 4:2:2 8-bit BT.709.
196    YCbCr709_422_8,
197
198    /// YCbCr 4:1:1 8-bit BT.709.
199    YCbCr709_411_8_CbYYCrYY,
200
201    /// YCbCr 4:2:2 8-bit.
202    YCbCr422_8_CbYCrY,
203
204    /// YCbCr 4:2:2 8-bit BT.601.
205    YCbCr601_422_8_CbYCrY,
206
207    /// YCbCr 4:2:2 8-bit BT.709.
208    YCbCr709_422_8_CbYCrY,
209
210    /// Monochrome 10-bit packed.
211    Mono10p,
212
213    /// Monochrome 12-bit packed.
214    Mono12p,
215
216    /// Blue-Green-Red 10-bit packed.
217    BGR10p,
218
219    /// Blue-Green-Red 12-bit packed.
220    BGR12p,
221
222    /// Blue-Green-Red 14-bit unpacked.
223    BGR14,
224
225    /// Blue-Green-Red 16-bit.
226    BGR16,
227
228    /// Blue-Green-Red-alpha 10-bit unpacked.
229    BGRa10,
230
231    /// Blue-Green-Red-alpha 10-bit packed.
232    BGRa10p,
233
234    /// Blue-Green-Red-alpha 12-bit unpacked.
235    BGRa12,
236
237    /// Blue-Green-Red-alpha 12-bit packed.
238    BGRa12p,
239
240    /// Blue-Green-Red-alpha 14-bit unpacked.
241    BGRa14,
242
243    /// Blue-Green-Red-alpha 16-bit.
244    BGRa16,
245
246    /// Bayer Blue-Green 10-bit packed.
247    BayerBG10p,
248
249    /// Bayer Blue-Green 12-bit packed.
250    BayerBG12p,
251
252    /// Bayer Green-Blue 10-bit packed.
253    BayerGB10p,
254
255    /// Bayer Green-Blue 12-bit packed.
256    BayerGB12p,
257
258    /// Bayer Green-Red 10-bit packed.
259    BayerGR10p,
260
261    /// Bayer Green-Red 12-bit packed.
262    BayerGR12p,
263
264    /// Bayer Red-Green 10-bit packed.
265    BayerRG10p,
266
267    /// Bayer Red-Green 12-bit packed.
268    BayerRG12p,
269
270    /// YCbCr 4:1:1 8-bit.
271    YCbCr411_8,
272
273    /// YCbCr 4:4:4 8-bit.
274    YCbCr8,
275
276    /// Red-Green-Blue 10-bit packed.
277    RGB10p,
278
279    /// Red-Green-Blue 12-bit packed.
280    RGB12p,
281
282    /// Red-Green-Blue 14-bit unpacked.
283    RGB14,
284
285    /// Red-Green-Blue-alpha 10-bit unpacked.
286    RGBa10,
287
288    /// Red-Green-Blue-alpha 10-bit packed.
289    RGBa10p,
290
291    /// Red-Green-Blue-alpha 12-bit unpacked.
292    RGBa12,
293
294    /// Red-Green-Blue-alpha 12-bit packed.
295    RGBa12p,
296
297    /// Red-Green-Blue-alpha 14-bit unpacked.
298    RGBa14,
299
300    /// Red-Green-Blue-alpha 16-bit.
301    RGBa16,
302
303    /// YCbCr 4:2:2 10-bit unpacked.
304    YCbCr422_10,
305
306    /// YCbCr 4:2:2 12-bit unpacked.
307    YCbCr422_12,
308
309    /// Sparse Color Filter #1 White-Blue-White-Green 8-bit.
310    SCF1WBWG8,
311
312    /// Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked.
313    SCF1WBWG10,
314
315    /// Sparse Color Filter #1 White-Blue-White-Green 10-bit packed.
316    SCF1WBWG10p,
317
318    /// Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked.
319    SCF1WBWG12,
320
321    /// Sparse Color Filter #1 White-Blue-White-Green 12-bit packed.
322    SCF1WBWG12p,
323
324    /// Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked.
325    SCF1WBWG14,
326
327    /// Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked.
328    SCF1WBWG16,
329
330    /// Sparse Color Filter #1 White-Green-White-Blue 8-bit.
331    SCF1WGWB8,
332
333    /// Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked.
334    SCF1WGWB10,
335
336    /// Sparse Color Filter #1 White-Green-White-Blue 10-bit packed.
337    SCF1WGWB10p,
338
339    /// Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked.
340    SCF1WGWB12,
341
342    /// Sparse Color Filter #1 White-Green-White-Blue 12-bit packed.
343    SCF1WGWB12p,
344
345    /// Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked.
346    SCF1WGWB14,
347
348    /// Sparse Color Filter #1 White-Green-White-Blue 16-bit.
349    SCF1WGWB16,
350
351    /// Sparse Color Filter #1 White-Green-White-Red 8-bit.
352    SCF1WGWR8,
353
354    /// Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked.
355    SCF1WGWR10,
356
357    /// Sparse Color Filter #1 White-Green-White-Red 10-bit packed.
358    SCF1WGWR10p,
359
360    /// Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked.
361    SCF1WGWR12,
362
363    /// Sparse Color Filter #1 White-Green-White-Red 12-bit packed.
364    SCF1WGWR12p,
365
366    /// Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked.
367    SCF1WGWR14,
368
369    /// Sparse Color Filter #1 White-Green-White-Red 16-bit.
370    SCF1WGWR16,
371
372    /// Sparse Color Filter #1 White-Red-White-Green 8-bit.
373    SCF1WRWG8,
374
375    /// Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked.
376    SCF1WRWG10,
377
378    /// Sparse Color Filter #1 White-Red-White-Green 10-bit packed.
379    SCF1WRWG10p,
380
381    /// Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked.
382    SCF1WRWG12,
383
384    /// Sparse Color Filter #1 White-Red-White-Green 12-bit packed.
385    SCF1WRWG12p,
386
387    /// Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked.
388    SCF1WRWG14,
389
390    /// Sparse Color Filter #1 White-Red-White-Green 16-bit.
391    SCF1WRWG16,
392
393    /// YCbCr 4:4:4 10-bit unpacked.
394    YCbCr10_CbYCr,
395
396    /// YCbCr 4:4:4 10-bit packed.
397    YCbCr10p_CbYCr,
398
399    /// YCbCr 4:4:4 12-bit unpacked.
400    YCbCr12_CbYCr,
401
402    /// YCbCr 4:4:4 12-bit packed.
403    YCbCr12p_CbYCr,
404
405    /// YCbCr 4:2:2 10-bit packed.
406    YCbCr422_10p,
407
408    /// YCbCr 4:2:2 12-bit packed.
409    YCbCr422_12p,
410
411    /// YCbCr 4:4:4 10-bit unpacked BT.601.
412    YCbCr601_10_CbYCr,
413
414    /// YCbCr 4:4:4 10-bit packed BT.601.
415    YCbCr601_10p_CbYCr,
416
417    /// YCbCr 4:4:4 12-bit unpacked BT.601.
418    YCbCr601_12_CbYCr,
419
420    /// YCbCr 4:4:4 12-bit packed BT.601.
421    YCbCr601_12p_CbYCr,
422
423    /// YCbCr 4:2:2 10-bit unpacked BT.601.
424    YCbCr601_422_10,
425
426    /// YCbCr 4:2:2 10-bit packed BT.601.
427    YCbCr601_422_10p,
428
429    /// YCbCr 4:2:2 12-bit unpacked BT.601.
430    YCbCr601_422_12,
431
432    /// YCbCr 4:2:2 12-bit packed BT.601.
433    YCbCr601_422_12p,
434
435    /// YCbCr 4:4:4 10-bit unpacked BT.709.
436    YCbCr709_10_CbYCr,
437
438    /// YCbCr 4:4:4 10-bit packed BT.709.
439    YCbCr709_10p_CbYCr,
440
441    /// YCbCr 4:4:4 12-bit unpacked BT.709.
442    YCbCr709_12_CbYCr,
443
444    /// YCbCr 4:4:4 12-bit packed BT.709.
445    YCbCr709_12p_CbYCr,
446
447    /// YCbCr 4:2:2 10-bit unpacked BT.709.
448    YCbCr709_422_10,
449
450    /// YCbCr 4:2:2 10-bit packed BT.709.
451    YCbCr709_422_10p,
452
453    /// YCbCr 4:2:2 12-bit unpacked BT.709.
454    YCbCr709_422_12,
455
456    /// YCbCr 4:2:2 12-bit packed BT.709.
457    YCbCr709_422_12p,
458
459    /// YCbCr 4:2:2 10-bit unpacked.
460    YCbCr422_10_CbYCrY,
461
462    /// YCbCr 4:2:2 10-bit packed.
463    YCbCr422_10p_CbYCrY,
464
465    /// YCbCr 4:2:2 12-bit unpacked.
466    YCbCr422_12_CbYCrY,
467
468    /// YCbCr 4:2:2 12-bit packed.
469    YCbCr422_12p_CbYCrY,
470
471    /// YCbCr 4:2:2 10-bit unpacked BT.601.
472    YCbCr601_422_10_CbYCrY,
473
474    /// YCbCr 4:2:2 10-bit packed BT.601.
475    YCbCr601_422_10p_CbYCrY,
476
477    /// YCbCr 4:2:2 12-bit unpacked BT.601.
478    YCbCr601_422_12_CbYCrY,
479
480    /// YCbCr 4:2:2 12-bit packed BT.601.
481    YCbCr601_422_12p_CbYCrY,
482
483    /// YCbCr 4:2:2 10-bit unpacked BT.709.
484    YCbCr709_422_10_CbYCrY,
485
486    /// YCbCr 4:2:2 10-bit packed BT.709.
487    YCbCr709_422_10p_CbYCrY,
488
489    /// YCbCr 4:2:2 12-bit unpacked BT.709.
490    YCbCr709_422_12_CbYCrY,
491
492    /// YCbCr 4:2:2 12-bit packed BT.709.
493    YCbCr709_422_12p_CbYCrY,
494
495    /// Bi-color Red/Green - Blue/Green 8-bit.
496    BiColorRGBG8,
497
498    /// Bi-color Blue/Green - Red/Green 8-bit.
499    BiColorBGRG8,
500
501    /// Bi-color Red/Green - Blue/Green 10-bit unpacked.
502    BiColorRGBG10,
503
504    /// Bi-color Red/Green - Blue/Green 10-bit packed.
505    BiColorRGBG10p,
506
507    /// Bi-color Blue/Green - Red/Green 10-bit unpacked.
508    BiColorBGRG10,
509
510    /// Bi-color Blue/Green - Red/Green 10-bit packed.
511    BiColorBGRG10p,
512
513    /// Bi-color Red/Green - Blue/Green 12-bit unpacked.
514    BiColorRGBG12,
515
516    /// Bi-color Red/Green - Blue/Green 12-bit packed.
517    BiColorRGBG12p,
518
519    /// Bi-color Blue/Green - Red/Green 12-bit unpacked.
520    BiColorBGRG12,
521
522    /// Bi-color Blue/Green - Red/Green 12-bit packed.
523    BiColorBGRG12p,
524
525    /// 3D coordinate A 8-bit.
526    Coord3D_A8,
527
528    /// 3D coordinate B 8-bit.
529    Coord3D_B8,
530
531    /// 3D coordinate C 8-bit.
532    Coord3D_C8,
533
534    /// 3D coordinate A-B-C 8-bit.
535    Coord3D_ABC8,
536
537    /// 3D coordinate A-B-C 8-bit planar.
538    Coord3D_ABC8_Planar,
539
540    /// 3D coordinate A-C 8-bit.
541    Coord3D_AC8,
542
543    /// 3D coordinate A-C 8-bit planar.
544    Coord3D_AC8_Planar,
545
546    /// 3D coordinate A 16-bit.
547    Coord3D_A16,
548
549    /// 3D coordinate B 16-bit.
550    Coord3D_B16,
551
552    /// 3D coordinate C 16-bit.
553    Coord3D_C16,
554
555    /// 3D coordinate A-B-C 16-bit.
556    Coord3D_ABC16,
557
558    /// 3D coordinate A-B-C 16-bit planar.
559    Coord3D_ABC16_Planar,
560
561    /// 3D coordinate A-C 16-bit.
562    Coord3D_AC16,
563
564    /// 3D coordinate A-C 16-bit planar.
565    Coord3D_AC16_Planar,
566
567    /// 3D coordinate A 32-bit floating point.
568    Coord3D_A32f,
569
570    /// 3D coordinate B 32-bit floating point.
571    Coord3D_B32f,
572
573    /// 3D coordinate C 32-bit floating point.
574    Coord3D_C32f,
575
576    /// 3D coordinate A-B-C 32-bit floating point.
577    Coord3D_ABC32f,
578
579    /// 3D coordinate A-B-C 32-bit floating point planar.
580    Coord3D_ABC32f_Planar,
581
582    /// 3D coordinate A-C 32-bit floating point.
583    Coord3D_AC32f,
584
585    /// 3D coordinate A-C 32-bit floating point planar.
586    Coord3D_AC32f_Planar,
587
588    /// Confidence 1-bit unpacked.
589    Confidence1,
590
591    /// Confidence 1-bit packed.
592    Confidence1p,
593
594    /// Confidence 8-bit.
595    Confidence8,
596
597    /// Confidence 16-bit.
598    Confidence16,
599
600    /// Confidence 32-bit floating point.
601    Confidence32f,
602
603    /// Red 8-bit.
604    R8,
605
606    /// Red 10-bit.
607    R10,
608
609    /// Red 12-bit.
610    R12,
611
612    /// Red 16-bit.
613    R16,
614
615    /// Green 8-bit.
616    G8,
617
618    /// Green 10-bit.
619    G10,
620
621    /// Green 12-bit.
622    G12,
623
624    /// Green 16-bit.
625    G16,
626
627    /// Blue 8-bit.
628    B8,
629
630    /// Blue 10-bit.
631    B10,
632
633    /// Blue 12-bit.
634    B12,
635
636    /// Blue 16-bit.
637    B16,
638
639    /// 3D coordinate A 10-bit packed.
640    Coord3D_A10p,
641
642    /// 3D coordinate B 10-bit packed.
643    Coord3D_B10p,
644
645    /// 3D coordinate C 10-bit packed.
646    Coord3D_C10p,
647
648    /// 3D coordinate A 12-bit packed.
649    Coord3D_A12p,
650
651    /// 3D coordinate B 12-bit packed.
652    Coord3D_B12p,
653
654    /// 3D coordinate C 12-bit packed.
655    Coord3D_C12p,
656
657    /// 3D coordinate A-B-C 10-bit packed.
658    Coord3D_ABC10p,
659
660    /// 3D coordinate A-B-C 10-bit packed planar.
661    Coord3D_ABC10p_Planar,
662
663    /// 3D coordinate A-B-C 12-bit packed.
664    Coord3D_ABC12p,
665
666    /// 3D coordinate A-B-C 12-bit packed planar.
667    Coord3D_ABC12p_Planar,
668
669    /// 3D coordinate A-C 10-bit packed.
670    Coord3D_AC10p,
671
672    /// 3D coordinate A-C 10-bit packed planar.
673    Coord3D_AC10p_Planar,
674
675    /// 3D coordinate A-C 12-bit packed.
676    Coord3D_AC12p,
677
678    /// 3D coordinate A-C 12-bit packed planar.
679    Coord3D_AC12p_Planar,
680
681    /// YCbCr 4:4:4 8-bit BT.2020.
682    YCbCr2020_8_CbYCr,
683
684    /// YCbCr 4:4:4 10-bit unpacked BT.2020.
685    YCbCr2020_10_CbYCr,
686
687    /// YCbCr 4:4:4 10-bit packed BT.2020.
688    YCbCr2020_10p_CbYCr,
689
690    /// YCbCr 4:4:4 12-bit unpacked BT.2020.
691    YCbCr2020_12_CbYCr,
692
693    /// YCbCr 4:4:4 12-bit packed BT.2020.
694    YCbCr2020_12p_CbYCr,
695
696    /// YCbCr 4:1:1 8-bit BT.2020.
697    YCbCr2020_411_8_CbYYCrYY,
698
699    /// YCbCr 4:2:2 8-bit BT.2020.
700    YCbCr2020_422_8,
701
702    /// YCbCr 4:2:2 8-bit BT.2020.
703    YCbCr2020_422_8_CbYCrY,
704
705    /// YCbCr 4:2:2 10-bit unpacked BT.2020.
706    YCbCr2020_422_10,
707
708    /// YCbCr 4:2:2 10-bit unpacked BT.2020.
709    YCbCr2020_422_10_CbYCrY,
710
711    /// YCbCr 4:2:2 10-bit packed BT.2020.
712    YCbCr2020_422_10p,
713
714    /// YCbCr 4:2:2 10-bit packed BT.2020.
715    YCbCr2020_422_10p_CbYCrY,
716
717    /// YCbCr 4:2:2 12-bit unpacked BT.2020.
718    YCbCr2020_422_12,
719
720    /// YCbCr 4:2:2 12-bit unpacked BT.2020.
721    YCbCr2020_422_12_CbYCrY,
722
723    /// YCbCr 4:2:2 12-bit packed BT.2020.
724    YCbCr2020_422_12p,
725
726    /// YCbCr 4:2:2 12-bit packed BT.2020.
727    YCbCr2020_422_12p_CbYCrY,
728
729    /// Monochrome 14-bit packed.
730    Mono14p,
731
732    /// Bayer Green-Red 14-bit packed.
733    BayerGR14p,
734
735    /// Bayer Red-Green 14-bit packed.
736    BayerRG14p,
737
738    /// Bayer Green-Blue 14-bit packed.
739    BayerGB14p,
740
741    /// Bayer Blue-Green 14-bit packed.
742    BayerBG14p,
743
744    /// Bayer Green-Red 14-bit.
745    BayerGR14,
746
747    /// Bayer Red-Green 14-bit.
748    BayerRG14,
749
750    /// Bayer Green-Blue 14-bit.
751    BayerGB14,
752
753    /// Bayer Blue-Green 14-bit.
754    BayerBG14,
755
756    /// Bayer Green-Red 4-bit packed.
757    BayerGR4p,
758
759    /// Bayer Red-Green 4-bit packed.
760    BayerRG4p,
761
762    /// Bayer Green-Blue 4-bit packed.
763    BayerGB4p,
764
765    /// Bayer Blue-Green 4-bit packed.
766    BayerBG4p,
767
768    /// Monochrome 32-bit.
769    Mono32,
770
771    /// YCbCr 4:2:0 8-bit YY/CbCr Semiplanar.
772    YCbCr420_8_YY_CbCr_Semiplanar,
773
774    /// YCbCr 4:2:2 8-bit YY/CbCr Semiplanar.
775    YCbCr422_8_YY_CbCr_Semiplanar,
776
777    /// YCbCr 4:2:0 8-bit YY/CrCb Semiplanar.
778    YCbCr420_8_YY_CrCb_Semiplanar,
779
780    /// YCbCr 4:2:2 8-bit YY/CrCb Semiplanar.
781    YCbCr422_8_YY_CrCb_Semiplanar,
782
783    /// Data 8-bit.
784    Data8,
785
786    /// Data 8-bit signed.
787    Data8s,
788
789    /// Data 16-bit.
790    Data16,
791
792    /// Data 16-bit signed.
793    Data16s,
794
795    /// Data 32-bit.
796    Data32,
797
798    /// Data 32-bit signed.
799    Data32s,
800
801    /// Data 32-bit floating point.
802    Data32f,
803
804    /// Data 64-bit.
805    Data64,
806
807    /// Data 64-bit signed.
808    Data64s,
809
810    /// Data 64-bit floating point.
811    Data64f,
812
813    /// Bayer red green filter, with an image size of 10 bits per pixel, lsb grouped into 40 bits.
814    /// This pixel format is preliminary and its name and value may change in a future product version.
815    /// This feature is only supported by uEye+ cameras (GV and U3 models).
816    BayerRG10g40IDS,
817
818    /// Bayer red green filter, with an image size of 12 bits per pixel, lsb grouped into 24 bits.
819    /// This pixel format is preliminary and its name and value may change in a future product version.
820    /// This feature is only supported by uEye+ cameras (GV and U3 models).
821    BayerRG12g24IDS,
822
823    /// Bayer green blue filter, with an image size of 10 bits per pixel, lsb grouped into 40 bits.
824    /// This pixel format is preliminary and its name and value may change in a future product version.
825    /// This feature is only supported by uEye+ cameras (GV and U3 models).
826    BayerGB10g40IDS,
827
828    /// Bayer green blue filter, with an image size of 12 bits per pixel, lsb grouped into 24 bits.
829    /// This pixel format is preliminary and its name and value may change in a future product version.
830    /// This feature is only supported by uEye+ cameras (GV and U3 models).
831    BayerGB12g24IDS,
832
833    /// Bayer green red filter, with an image size of 10 bits per pixel, lsb grouped into 40 bits.
834    /// This pixel format is preliminary and its name and value may change in a future product version.
835    /// This feature is only supported by uEye+ cameras (GV and U3 models).
836    BayerGR10g40IDS,
837
838    /// Bayer green red filter, with an image size of 12 bits per pixel, lsb grouped into 24 bits.
839    /// This pixel format is preliminary and its name and value may change in a future product version.
840    /// This feature is only supported by uEye+ cameras (GV and U3 models).
841    BayerGR12g24IDS,
842
843    /// Bayer blue green filter, with an image size of 10 bits per pixel, lsb grouped into 40 bits.
844    /// This pixel format is preliminary and its name and value may change in a future product version.
845    /// This feature is only supported by uEye+ cameras (GV and U3 models).
846    BayerBG10g40IDS,
847
848    /// Bayer blue green filter, with an image size of 12 bits per pixel, lsb grouped into 24 bits.
849    /// This pixel format is preliminary and its name and value may change in a future product version.
850    /// This feature is only supported by uEye+ cameras (GV and U3 models).
851    BayerBG12g24IDS,
852
853    /// Monochrome, with an image size of 10 bits per pixel, lsb grouped into 40 bits.
854    /// This pixel format is preliminary and its name and value may change in a future product version.
855    /// This feature is only supported by uEye+ cameras (GV and U3 models).
856    Mono10g40IDS,
857
858    /// Monochrome, with an image size of 12 bits per pixel, lsb grouped into 24 bits.
859    /// This pixel format is preliminary and its name and value may change in a future product version.
860    /// This feature is only supported by uEye+ cameras (GV and U3 models).
861    Mono12g24IDS,
862}
863
864impl TryFrom<u32> for PixelFormat {
865    type Error = String;
866
867    #[allow(clippy::too_many_lines)]
868    fn try_from(value: u32) -> Result<Self, Self::Error> {
869        match value {
870            0x0108_0001 => Ok(Mono8),
871            0x0108_0002 => Ok(Mono8s),
872            0x0110_0003 => Ok(Mono10),
873            0x010C_0004 => Ok(Mono10Packed),
874            0x0110_0005 => Ok(Mono12),
875            0x010C_0006 => Ok(Mono12Packed),
876            0x0110_0007 => Ok(Mono16),
877            0x0108_0008 => Ok(BayerGR8),
878            0x0108_0009 => Ok(BayerRG8),
879            0x0108_000A => Ok(BayerGB8),
880            0x0108_000B => Ok(BayerBG8),
881            0x0110_000C => Ok(BayerGR10),
882            0x0110_000D => Ok(BayerRG10),
883            0x0110_000E => Ok(BayerGB10),
884            0x0110_000F => Ok(BayerBG10),
885            0x0110_0010 => Ok(BayerGR12),
886            0x0110_0011 => Ok(BayerRG12),
887            0x0110_0012 => Ok(BayerGB12),
888            0x0110_0013 => Ok(BayerBG12),
889            0x0218_0014 => Ok(RGB8),
890            0x0218_0015 => Ok(BGR8),
891            0x0220_0016 => Ok(RGBa8),
892            0x0220_0017 => Ok(BGRa8),
893            0x0230_0018 => Ok(RGB10),
894            0x0230_0019 => Ok(BGR10),
895            0x0230_001A => Ok(RGB12),
896            0x0230_001B => Ok(BGR12),
897            0x0218_0020 => Ok(YUV8_UYV),
898            0x0218_0021 => Ok(RGB8_Planar),
899            0x0230_0022 => Ok(RGB10_Planar),
900            0x0230_0023 => Ok(RGB12_Planar),
901            0x0230_0024 => Ok(RGB16_Planar),
902            0x0110_0025 => Ok(Mono14),
903            0x010C_0026 => Ok(BayerGR10Packed),
904            0x010C_0027 => Ok(BayerRG10Packed),
905            0x010C_0028 => Ok(BayerGB10Packed),
906            0x010C_0029 => Ok(BayerBG10Packed),
907            0x010C_002A => Ok(BayerGR12Packed),
908            0x010C_002B => Ok(BayerRG12Packed),
909            0x010C_002C => Ok(BayerGB12Packed),
910            0x010C_002D => Ok(BayerBG12Packed),
911            0x0110_002E => Ok(BayerGR16),
912            0x0110_002F => Ok(BayerRG16),
913            0x0110_0030 => Ok(BayerGB16),
914            0x0110_0031 => Ok(BayerBG16),
915            0x0210_0032 => Ok(YUV422_8),
916            0x0230_0033 => Ok(RGB16),
917            0x0224_0034 => Ok(RGB12V1Packed),
918            0x0210_0035 => Ok(RGB565p),
919            0x0210_0036 => Ok(BGR565p),
920            0x0101_0037 => Ok(Mono1p),
921            0x0102_0038 => Ok(Mono2p),
922            0x0104_0039 => Ok(Mono4p),
923            0x0218_003A => Ok(YCbCr8_CbYCr),
924            0x0210_003B => Ok(YCbCr422_8),
925            0x020C_003C => Ok(YCbCr411_8_CbYYCrYY),
926            0x0218_003D => Ok(YCbCr601_8_CbYCr),
927            0x0210_003E => Ok(YCbCr601_422_8),
928            0x020C_003F => Ok(YCbCr601_411_8_CbYYCrYY),
929            0x0218_0040 => Ok(YCbCr709_8_CbYCr),
930            0x0210_0041 => Ok(YCbCr709_422_8),
931            0x020C_0042 => Ok(YCbCr709_411_8_CbYYCrYY),
932            0x0210_0043 => Ok(YCbCr422_8_CbYCrY),
933            0x0210_0044 => Ok(YCbCr601_422_8_CbYCrY),
934            0x0210_0045 => Ok(YCbCr709_422_8_CbYCrY),
935            0x010A_0046 => Ok(Mono10p),
936            0x010C_0047 => Ok(Mono12p),
937            0x021E_0048 => Ok(BGR10p),
938            0x0224_0049 => Ok(BGR12p),
939            0x0230_004A => Ok(BGR14),
940            0x0230_004B => Ok(BGR16),
941            0x0240_004C => Ok(BGRa10),
942            0x0228_004D => Ok(BGRa10p),
943            0x0240_004E => Ok(BGRa12),
944            0x0230_004F => Ok(BGRa12p),
945            0x0240_0050 => Ok(BGRa14),
946            0x0240_0051 => Ok(BGRa16),
947            0x010A_0052 => Ok(BayerBG10p),
948            0x010C_0053 => Ok(BayerBG12p),
949            0x010A_0054 => Ok(BayerGB10p),
950            0x010C_0055 => Ok(BayerGB12p),
951            0x010A_0056 => Ok(BayerGR10p),
952            0x010C_0057 => Ok(BayerGR12p),
953            0x010A_0058 => Ok(BayerRG10p),
954            0x010C_0059 => Ok(BayerRG12p),
955            0x020C_005A => Ok(YCbCr411_8),
956            0x0218_005B => Ok(YCbCr8),
957            0x021E_005C => Ok(RGB10p),
958            0x0224_005D => Ok(RGB12p),
959            0x0230_005E => Ok(RGB14),
960            0x0240_005F => Ok(RGBa10),
961            0x0228_0060 => Ok(RGBa10p),
962            0x0240_0061 => Ok(RGBa12),
963            0x0230_0062 => Ok(RGBa12p),
964            0x0240_0063 => Ok(RGBa14),
965            0x0240_0064 => Ok(RGBa16),
966            0x0220_0065 => Ok(YCbCr422_10),
967            0x0220_0066 => Ok(YCbCr422_12),
968            0x0108_0067 => Ok(SCF1WBWG8),
969            0x0110_0068 => Ok(SCF1WBWG10),
970            0x010A_0069 => Ok(SCF1WBWG10p),
971            0x0110_006A => Ok(SCF1WBWG12),
972            0x010C_006B => Ok(SCF1WBWG12p),
973            0x0110_006C => Ok(SCF1WBWG14),
974            0x0110_006D => Ok(SCF1WBWG16),
975            0x0108_006E => Ok(SCF1WGWB8),
976            0x0110_006F => Ok(SCF1WGWB10),
977            0x010A_0070 => Ok(SCF1WGWB10p),
978            0x0110_0071 => Ok(SCF1WGWB12),
979            0x010C_0072 => Ok(SCF1WGWB12p),
980            0x0110_0073 => Ok(SCF1WGWB14),
981            0x0110_0074 => Ok(SCF1WGWB16),
982            0x0108_0075 => Ok(SCF1WGWR8),
983            0x0110_0076 => Ok(SCF1WGWR10),
984            0x010A_0077 => Ok(SCF1WGWR10p),
985            0x0110_0078 => Ok(SCF1WGWR12),
986            0x010C_0079 => Ok(SCF1WGWR12p),
987            0x0110_007A => Ok(SCF1WGWR14),
988            0x0110_007B => Ok(SCF1WGWR16),
989            0x0108_007C => Ok(SCF1WRWG8),
990            0x0110_007D => Ok(SCF1WRWG10),
991            0x010A_007E => Ok(SCF1WRWG10p),
992            0x0110_007F => Ok(SCF1WRWG12),
993            0x010C_0080 => Ok(SCF1WRWG12p),
994            0x0110_0081 => Ok(SCF1WRWG14),
995            0x0110_0082 => Ok(SCF1WRWG16),
996            0x0230_0083 => Ok(YCbCr10_CbYCr),
997            0x021E_0084 => Ok(YCbCr10p_CbYCr),
998            0x0230_0085 => Ok(YCbCr12_CbYCr),
999            0x0224_0086 => Ok(YCbCr12p_CbYCr),
1000            0x0214_0087 => Ok(YCbCr422_10p),
1001            0x0218_0088 => Ok(YCbCr422_12p),
1002            0x0230_0089 => Ok(YCbCr601_10_CbYCr),
1003            0x021E_008A => Ok(YCbCr601_10p_CbYCr),
1004            0x0230_008B => Ok(YCbCr601_12_CbYCr),
1005            0x0224_008C => Ok(YCbCr601_12p_CbYCr),
1006            0x0220_008D => Ok(YCbCr601_422_10),
1007            0x0214_008E => Ok(YCbCr601_422_10p),
1008            0x0220_008F => Ok(YCbCr601_422_12),
1009            0x0218_0090 => Ok(YCbCr601_422_12p),
1010            0x0230_0091 => Ok(YCbCr709_10_CbYCr),
1011            0x021E_0092 => Ok(YCbCr709_10p_CbYCr),
1012            0x0230_0093 => Ok(YCbCr709_12_CbYCr),
1013            0x0224_0094 => Ok(YCbCr709_12p_CbYCr),
1014            0x0220_0095 => Ok(YCbCr709_422_10),
1015            0x0214_0096 => Ok(YCbCr709_422_10p),
1016            0x0220_0097 => Ok(YCbCr709_422_12),
1017            0x0218_0098 => Ok(YCbCr709_422_12p),
1018            0x0220_0099 => Ok(YCbCr422_10_CbYCrY),
1019            0x0214_009A => Ok(YCbCr422_10p_CbYCrY),
1020            0x0220_009B => Ok(YCbCr422_12_CbYCrY),
1021            0x0218_009C => Ok(YCbCr422_12p_CbYCrY),
1022            0x0220_009D => Ok(YCbCr601_422_10_CbYCrY),
1023            0x0214_009E => Ok(YCbCr601_422_10p_CbYCrY),
1024            0x0220_009F => Ok(YCbCr601_422_12_CbYCrY),
1025            0x0218_00A0 => Ok(YCbCr601_422_12p_CbYCrY),
1026            0x0220_00A1 => Ok(YCbCr709_422_10_CbYCrY),
1027            0x0214_00A2 => Ok(YCbCr709_422_10p_CbYCrY),
1028            0x0220_00A3 => Ok(YCbCr709_422_12_CbYCrY),
1029            0x0218_00A4 => Ok(YCbCr709_422_12p_CbYCrY),
1030            0x0210_00A5 => Ok(BiColorRGBG8),
1031            0x0210_00A6 => Ok(BiColorBGRG8),
1032            0x0220_00A7 => Ok(BiColorRGBG10),
1033            0x0214_00A8 => Ok(BiColorRGBG10p),
1034            0x0220_00A9 => Ok(BiColorBGRG10),
1035            0x0214_00AA => Ok(BiColorBGRG10p),
1036            0x0220_00AB => Ok(BiColorRGBG12),
1037            0x0218_00AC => Ok(BiColorRGBG12p),
1038            0x0220_00AD => Ok(BiColorBGRG12),
1039            0x0218_00AE => Ok(BiColorBGRG12p),
1040            0x0108_00AF => Ok(Coord3D_A8),
1041            0x0108_00B0 => Ok(Coord3D_B8),
1042            0x0108_00B1 => Ok(Coord3D_C8),
1043            0x0218_00B2 => Ok(Coord3D_ABC8),
1044            0x0218_00B3 => Ok(Coord3D_ABC8_Planar),
1045            0x0210_00B4 => Ok(Coord3D_AC8),
1046            0x0210_00B5 => Ok(Coord3D_AC8_Planar),
1047            0x0110_00B6 => Ok(Coord3D_A16),
1048            0x0110_00B7 => Ok(Coord3D_B16),
1049            0x0110_00B8 => Ok(Coord3D_C16),
1050            0x0230_00B9 => Ok(Coord3D_ABC16),
1051            0x0230_00BA => Ok(Coord3D_ABC16_Planar),
1052            0x0220_00BB => Ok(Coord3D_AC16),
1053            0x0220_00BC => Ok(Coord3D_AC16_Planar),
1054            0x0120_00BD => Ok(Coord3D_A32f),
1055            0x0120_00BE => Ok(Coord3D_B32f),
1056            0x0120_00BF => Ok(Coord3D_C32f),
1057            0x0260_00C0 => Ok(Coord3D_ABC32f),
1058            0x0260_00C1 => Ok(Coord3D_ABC32f_Planar),
1059            0x0240_00C2 => Ok(Coord3D_AC32f),
1060            0x0240_00C3 => Ok(Coord3D_AC32f_Planar),
1061            0x0108_00C4 => Ok(Confidence1),
1062            0x0101_00C5 => Ok(Confidence1p),
1063            0x0108_00C6 => Ok(Confidence8),
1064            0x0110_00C7 => Ok(Confidence16),
1065            0x0120_00C8 => Ok(Confidence32f),
1066            0x0108_00C9 => Ok(R8),
1067            0x010A_00CA => Ok(R10),
1068            0x010C_00CB => Ok(R12),
1069            0x0110_00CC => Ok(R16),
1070            0x0108_00CD => Ok(G8),
1071            0x010A_00CE => Ok(G10),
1072            0x010C_00CF => Ok(G12),
1073            0x0110_00D0 => Ok(G16),
1074            0x0108_00D1 => Ok(B8),
1075            0x010A_00D2 => Ok(B10),
1076            0x010C_00D3 => Ok(B12),
1077            0x0110_00D4 => Ok(B16),
1078            0x010A_00D5 => Ok(Coord3D_A10p),
1079            0x010A_00D6 => Ok(Coord3D_B10p),
1080            0x010A_00D7 => Ok(Coord3D_C10p),
1081            0x010C_00D8 => Ok(Coord3D_A12p),
1082            0x010C_00D9 => Ok(Coord3D_B12p),
1083            0x010C_00DA => Ok(Coord3D_C12p),
1084            0x021E_00DB => Ok(Coord3D_ABC10p),
1085            0x021E_00DC => Ok(Coord3D_ABC10p_Planar),
1086            0x0224_00DE => Ok(Coord3D_ABC12p),
1087            0x0224_00DF => Ok(Coord3D_ABC12p_Planar),
1088            0x0214_00F0 => Ok(Coord3D_AC10p),
1089            0x0214_00F1 => Ok(Coord3D_AC10p_Planar),
1090            0x0218_00F2 => Ok(Coord3D_AC12p),
1091            0x0218_00F3 => Ok(Coord3D_AC12p_Planar),
1092            0x0218_00F4 => Ok(YCbCr2020_8_CbYCr),
1093            0x0230_00F5 => Ok(YCbCr2020_10_CbYCr),
1094            0x021E_00F6 => Ok(YCbCr2020_10p_CbYCr),
1095            0x0230_00F7 => Ok(YCbCr2020_12_CbYCr),
1096            0x0224_00F8 => Ok(YCbCr2020_12p_CbYCr),
1097            0x020C_00F9 => Ok(YCbCr2020_411_8_CbYYCrYY),
1098            0x0210_00FA => Ok(YCbCr2020_422_8),
1099            0x0210_00FB => Ok(YCbCr2020_422_8_CbYCrY),
1100            0x0220_00FC => Ok(YCbCr2020_422_10),
1101            0x0220_00FD => Ok(YCbCr2020_422_10_CbYCrY),
1102            0x0214_00FE => Ok(YCbCr2020_422_10p),
1103            0x0214_00FF => Ok(YCbCr2020_422_10p_CbYCrY),
1104            0x0220_0100 => Ok(YCbCr2020_422_12),
1105            0x0220_0101 => Ok(YCbCr2020_422_12_CbYCrY),
1106            0x0218_0102 => Ok(YCbCr2020_422_12p),
1107            0x0218_0103 => Ok(YCbCr2020_422_12p_CbYCrY),
1108            0x010E_0104 => Ok(Mono14p),
1109            0x010E_0105 => Ok(BayerGR14p),
1110            0x010E_0106 => Ok(BayerRG14p),
1111            0x010E_0107 => Ok(BayerGB14p),
1112            0x010E_0108 => Ok(BayerBG14p),
1113            0x0110_0109 => Ok(BayerGR14),
1114            0x0110_010A => Ok(BayerRG14),
1115            0x0110_010B => Ok(BayerGB14),
1116            0x0110_010C => Ok(BayerBG14),
1117            0x0104_010D => Ok(BayerGR4p),
1118            0x0104_010E => Ok(BayerRG4p),
1119            0x0104_010F => Ok(BayerGB4p),
1120            0x0104_0110 => Ok(BayerBG4p),
1121            0x0120_0111 => Ok(Mono32),
1122            0x020C_0112 => Ok(YCbCr420_8_YY_CbCr_Semiplanar),
1123            0x0210_0113 => Ok(YCbCr422_8_YY_CbCr_Semiplanar),
1124            0x020C_0114 => Ok(YCbCr420_8_YY_CrCb_Semiplanar),
1125            0x0210_0115 => Ok(YCbCr422_8_YY_CrCb_Semiplanar),
1126            0x0108_0116 => Ok(Data8),
1127            0x0108_0117 => Ok(Data8s),
1128            0x0110_0118 => Ok(Data16),
1129            0x0110_0119 => Ok(Data16s),
1130            0x0120_011A => Ok(Data32),
1131            0x0120_011B => Ok(Data32s),
1132            0x0120_011C => Ok(Data32f),
1133            0x0140_011D => Ok(Data64),
1134            0x0140_011E => Ok(Data64s),
1135            0x0140_011F => Ok(Data64f),
1136            0x4000_0001 => Ok(BayerRG10g40IDS),
1137            0x4000_0011 => Ok(BayerRG12g24IDS),
1138            0x4000_0002 => Ok(BayerGB10g40IDS),
1139            0x4000_0012 => Ok(BayerGB12g24IDS),
1140            0x4000_0003 => Ok(BayerGR10g40IDS),
1141            0x4000_0013 => Ok(BayerGR12g24IDS),
1142            0x4000_0004 => Ok(BayerBG10g40IDS),
1143            0x4000_0014 => Ok(BayerBG12g24IDS),
1144            0x4000_000F => Ok(Mono10g40IDS),
1145            0x4000_001F => Ok(Mono12g24IDS),
1146            otherwise => Err(format!("{:x} is invalid value for pixel format", otherwise)),
1147        }
1148    }
1149}
1150
1151impl From<PixelFormat> for u32 {
1152    #[allow(clippy::too_many_lines)]
1153    fn from(val: PixelFormat) -> u32 {
1154        match val {
1155            Mono8 => 0x0108_0001,
1156            Mono8s => 0x0108_0002,
1157            Mono10 => 0x0110_0003,
1158            Mono10Packed => 0x010C_0004,
1159            Mono12 => 0x0110_0005,
1160            Mono12Packed => 0x010C_0006,
1161            Mono16 => 0x0110_0007,
1162            BayerGR8 => 0x0108_0008,
1163            BayerRG8 => 0x0108_0009,
1164            BayerGB8 => 0x0108_000A,
1165            BayerBG8 => 0x0108_000B,
1166            BayerGR10 => 0x0110_000C,
1167            BayerRG10 => 0x0110_000D,
1168            BayerGB10 => 0x0110_000E,
1169            BayerBG10 => 0x0110_000F,
1170            BayerGR12 => 0x0110_0010,
1171            BayerRG12 => 0x0110_0011,
1172            BayerGB12 => 0x0110_0012,
1173            BayerBG12 => 0x0110_0013,
1174            RGB8 => 0x0218_0014,
1175            BGR8 => 0x0218_0015,
1176            RGBa8 => 0x0220_0016,
1177            BGRa8 => 0x0220_0017,
1178            RGB10 => 0x0230_0018,
1179            BGR10 => 0x0230_0019,
1180            RGB12 => 0x0230_001A,
1181            BGR12 => 0x0230_001B,
1182            YUV8_UYV => 0x0218_0020,
1183            RGB8_Planar => 0x0218_0021,
1184            RGB10_Planar => 0x0230_0022,
1185            RGB12_Planar => 0x0230_0023,
1186            RGB16_Planar => 0x0230_0024,
1187            Mono14 => 0x0110_0025,
1188            BayerGR10Packed => 0x010C_0026,
1189            BayerRG10Packed => 0x010C_0027,
1190            BayerGB10Packed => 0x010C_0028,
1191            BayerBG10Packed => 0x010C_0029,
1192            BayerGR12Packed => 0x010C_002A,
1193            BayerRG12Packed => 0x010C_002B,
1194            BayerGB12Packed => 0x010C_002C,
1195            BayerBG12Packed => 0x010C_002D,
1196            BayerGR16 => 0x0110_002E,
1197            BayerRG16 => 0x0110_002F,
1198            BayerGB16 => 0x0110_0030,
1199            BayerBG16 => 0x0110_0031,
1200            YUV422_8 => 0x0210_0032,
1201            RGB16 => 0x0230_0033,
1202            RGB12V1Packed => 0x0224_0034,
1203            RGB565p => 0x0210_0035,
1204            BGR565p => 0x0210_0036,
1205            Mono1p => 0x0101_0037,
1206            Mono2p => 0x0102_0038,
1207            Mono4p => 0x0104_0039,
1208            YCbCr8_CbYCr => 0x0218_003A,
1209            YCbCr422_8 => 0x0210_003B,
1210            YCbCr411_8_CbYYCrYY => 0x020C_003C,
1211            YCbCr601_8_CbYCr => 0x0218_003D,
1212            YCbCr601_422_8 => 0x0210_003E,
1213            YCbCr601_411_8_CbYYCrYY => 0x020C_003F,
1214            YCbCr709_8_CbYCr => 0x0218_0040,
1215            YCbCr709_422_8 => 0x0210_0041,
1216            YCbCr709_411_8_CbYYCrYY => 0x020C_0042,
1217            YCbCr422_8_CbYCrY => 0x0210_0043,
1218            YCbCr601_422_8_CbYCrY => 0x0210_0044,
1219            YCbCr709_422_8_CbYCrY => 0x0210_0045,
1220            Mono10p => 0x010A_0046,
1221            Mono12p => 0x010C_0047,
1222            BGR10p => 0x021E_0048,
1223            BGR12p => 0x0224_0049,
1224            BGR14 => 0x0230_004A,
1225            BGR16 => 0x0230_004B,
1226            BGRa10 => 0x0240_004C,
1227            BGRa10p => 0x0228_004D,
1228            BGRa12 => 0x0240_004E,
1229            BGRa12p => 0x0230_004F,
1230            BGRa14 => 0x0240_0050,
1231            BGRa16 => 0x0240_0051,
1232            BayerBG10p => 0x010A_0052,
1233            BayerBG12p => 0x010C_0053,
1234            BayerGB10p => 0x010A_0054,
1235            BayerGB12p => 0x010C_0055,
1236            BayerGR10p => 0x010A_0056,
1237            BayerGR12p => 0x010C_0057,
1238            BayerRG10p => 0x010A_0058,
1239            BayerRG12p => 0x010C_0059,
1240            YCbCr411_8 => 0x020C_005A,
1241            YCbCr8 => 0x0218_005B,
1242            RGB10p => 0x021E_005C,
1243            RGB12p => 0x0224_005D,
1244            RGB14 => 0x0230_005E,
1245            RGBa10 => 0x0240_005F,
1246            RGBa10p => 0x0228_0060,
1247            RGBa12 => 0x0240_0061,
1248            RGBa12p => 0x0230_0062,
1249            RGBa14 => 0x0240_0063,
1250            RGBa16 => 0x0240_0064,
1251            YCbCr422_10 => 0x0220_0065,
1252            YCbCr422_12 => 0x0220_0066,
1253            SCF1WBWG8 => 0x0108_0067,
1254            SCF1WBWG10 => 0x0110_0068,
1255            SCF1WBWG10p => 0x010A_0069,
1256            SCF1WBWG12 => 0x0110_006A,
1257            SCF1WBWG12p => 0x010C_006B,
1258            SCF1WBWG14 => 0x0110_006C,
1259            SCF1WBWG16 => 0x0110_006D,
1260            SCF1WGWB8 => 0x0108_006E,
1261            SCF1WGWB10 => 0x0110_006F,
1262            SCF1WGWB10p => 0x010A_0070,
1263            SCF1WGWB12 => 0x0110_0071,
1264            SCF1WGWB12p => 0x010C_0072,
1265            SCF1WGWB14 => 0x0110_0073,
1266            SCF1WGWB16 => 0x0110_0074,
1267            SCF1WGWR8 => 0x0108_0075,
1268            SCF1WGWR10 => 0x0110_0076,
1269            SCF1WGWR10p => 0x010A_0077,
1270            SCF1WGWR12 => 0x0110_0078,
1271            SCF1WGWR12p => 0x010C_0079,
1272            SCF1WGWR14 => 0x0110_007A,
1273            SCF1WGWR16 => 0x0110_007B,
1274            SCF1WRWG8 => 0x0108_007C,
1275            SCF1WRWG10 => 0x0110_007D,
1276            SCF1WRWG10p => 0x010A_007E,
1277            SCF1WRWG12 => 0x0110_007F,
1278            SCF1WRWG12p => 0x010C_0080,
1279            SCF1WRWG14 => 0x0110_0081,
1280            SCF1WRWG16 => 0x0110_0082,
1281            YCbCr10_CbYCr => 0x0230_0083,
1282            YCbCr10p_CbYCr => 0x021E_0084,
1283            YCbCr12_CbYCr => 0x0230_0085,
1284            YCbCr12p_CbYCr => 0x0224_0086,
1285            YCbCr422_10p => 0x0214_0087,
1286            YCbCr422_12p => 0x0218_0088,
1287            YCbCr601_10_CbYCr => 0x0230_0089,
1288            YCbCr601_10p_CbYCr => 0x021E_008A,
1289            YCbCr601_12_CbYCr => 0x0230_008B,
1290            YCbCr601_12p_CbYCr => 0x0224_008C,
1291            YCbCr601_422_10 => 0x0220_008D,
1292            YCbCr601_422_10p => 0x0214_008E,
1293            YCbCr601_422_12 => 0x0220_008F,
1294            YCbCr601_422_12p => 0x0218_0090,
1295            YCbCr709_10_CbYCr => 0x0230_0091,
1296            YCbCr709_10p_CbYCr => 0x021E_0092,
1297            YCbCr709_12_CbYCr => 0x0230_0093,
1298            YCbCr709_12p_CbYCr => 0x0224_0094,
1299            YCbCr709_422_10 => 0x0220_0095,
1300            YCbCr709_422_10p => 0x0214_0096,
1301            YCbCr709_422_12 => 0x0220_0097,
1302            YCbCr709_422_12p => 0x0218_0098,
1303            YCbCr422_10_CbYCrY => 0x0220_0099,
1304            YCbCr422_10p_CbYCrY => 0x0214_009A,
1305            YCbCr422_12_CbYCrY => 0x0220_009B,
1306            YCbCr422_12p_CbYCrY => 0x0218_009C,
1307            YCbCr601_422_10_CbYCrY => 0x0220_009D,
1308            YCbCr601_422_10p_CbYCrY => 0x0214_009E,
1309            YCbCr601_422_12_CbYCrY => 0x0220_009F,
1310            YCbCr601_422_12p_CbYCrY => 0x0218_00A0,
1311            YCbCr709_422_10_CbYCrY => 0x0220_00A1,
1312            YCbCr709_422_10p_CbYCrY => 0x0214_00A2,
1313            YCbCr709_422_12_CbYCrY => 0x0220_00A3,
1314            YCbCr709_422_12p_CbYCrY => 0x0218_00A4,
1315            BiColorRGBG8 => 0x0210_00A5,
1316            BiColorBGRG8 => 0x0210_00A6,
1317            BiColorRGBG10 => 0x0220_00A7,
1318            BiColorRGBG10p => 0x0214_00A8,
1319            BiColorBGRG10 => 0x0220_00A9,
1320            BiColorBGRG10p => 0x0214_00AA,
1321            BiColorRGBG12 => 0x0220_00AB,
1322            BiColorRGBG12p => 0x0218_00AC,
1323            BiColorBGRG12 => 0x0220_00AD,
1324            BiColorBGRG12p => 0x0218_00AE,
1325            Coord3D_A8 => 0x0108_00AF,
1326            Coord3D_B8 => 0x0108_00B0,
1327            Coord3D_C8 => 0x0108_00B1,
1328            Coord3D_ABC8 => 0x0218_00B2,
1329            Coord3D_ABC8_Planar => 0x0218_00B3,
1330            Coord3D_AC8 => 0x0210_00B4,
1331            Coord3D_AC8_Planar => 0x0210_00B5,
1332            Coord3D_A16 => 0x0110_00B6,
1333            Coord3D_B16 => 0x0110_00B7,
1334            Coord3D_C16 => 0x0110_00B8,
1335            Coord3D_ABC16 => 0x0230_00B9,
1336            Coord3D_ABC16_Planar => 0x0230_00BA,
1337            Coord3D_AC16 => 0x0220_00BB,
1338            Coord3D_AC16_Planar => 0x0220_00BC,
1339            Coord3D_A32f => 0x0120_00BD,
1340            Coord3D_B32f => 0x0120_00BE,
1341            Coord3D_C32f => 0x0120_00BF,
1342            Coord3D_ABC32f => 0x0260_00C0,
1343            Coord3D_ABC32f_Planar => 0x0260_00C1,
1344            Coord3D_AC32f => 0x0240_00C2,
1345            Coord3D_AC32f_Planar => 0x0240_00C3,
1346            Confidence1 => 0x0108_00C4,
1347            Confidence1p => 0x0101_00C5,
1348            Confidence8 => 0x0108_00C6,
1349            Confidence16 => 0x0110_00C7,
1350            Confidence32f => 0x0120_00C8,
1351            R8 => 0x0108_00C9,
1352            R10 => 0x010A_00CA,
1353            R12 => 0x010C_00CB,
1354            R16 => 0x0110_00CC,
1355            G8 => 0x0108_00CD,
1356            G10 => 0x010A_00CE,
1357            G12 => 0x010C_00CF,
1358            G16 => 0x0110_00D0,
1359            B8 => 0x0108_00D1,
1360            B10 => 0x010A_00D2,
1361            B12 => 0x010C_00D3,
1362            B16 => 0x0110_00D4,
1363            Coord3D_A10p => 0x010A_00D5,
1364            Coord3D_B10p => 0x010A_00D6,
1365            Coord3D_C10p => 0x010A_00D7,
1366            Coord3D_A12p => 0x010C_00D8,
1367            Coord3D_B12p => 0x010C_00D9,
1368            Coord3D_C12p => 0x010C_00DA,
1369            Coord3D_ABC10p => 0x021E_00DB,
1370            Coord3D_ABC10p_Planar => 0x021E_00DC,
1371            Coord3D_ABC12p => 0x0224_00DE,
1372            Coord3D_ABC12p_Planar => 0x0224_00DF,
1373            Coord3D_AC10p => 0x0214_00F0,
1374            Coord3D_AC10p_Planar => 0x0214_00F1,
1375            Coord3D_AC12p => 0x0218_00F2,
1376            Coord3D_AC12p_Planar => 0x0218_00F3,
1377            YCbCr2020_8_CbYCr => 0x0218_00F4,
1378            YCbCr2020_10_CbYCr => 0x0230_00F5,
1379            YCbCr2020_10p_CbYCr => 0x021E_00F6,
1380            YCbCr2020_12_CbYCr => 0x0230_00F7,
1381            YCbCr2020_12p_CbYCr => 0x0224_00F8,
1382            YCbCr2020_411_8_CbYYCrYY => 0x020C_00F9,
1383            YCbCr2020_422_8 => 0x0210_00FA,
1384            YCbCr2020_422_8_CbYCrY => 0x0210_00FB,
1385            YCbCr2020_422_10 => 0x0220_00FC,
1386            YCbCr2020_422_10_CbYCrY => 0x0220_00FD,
1387            YCbCr2020_422_10p => 0x0214_00FE,
1388            YCbCr2020_422_10p_CbYCrY => 0x0214_00FF,
1389            YCbCr2020_422_12 => 0x0220_0100,
1390            YCbCr2020_422_12_CbYCrY => 0x0220_0101,
1391            YCbCr2020_422_12p => 0x0218_0102,
1392            YCbCr2020_422_12p_CbYCrY => 0x0218_0103,
1393            Mono14p => 0x010E_0104,
1394            BayerGR14p => 0x010E_0105,
1395            BayerRG14p => 0x010E_0106,
1396            BayerGB14p => 0x010E_0107,
1397            BayerBG14p => 0x010E_0108,
1398            BayerGR14 => 0x0110_0109,
1399            BayerRG14 => 0x0110_010A,
1400            BayerGB14 => 0x0110_010B,
1401            BayerBG14 => 0x0110_010C,
1402            BayerGR4p => 0x0104_010D,
1403            BayerRG4p => 0x0104_010E,
1404            BayerGB4p => 0x0104_010F,
1405            BayerBG4p => 0x0104_0110,
1406            Mono32 => 0x0120_0111,
1407            YCbCr420_8_YY_CbCr_Semiplanar => 0x020C_0112,
1408            YCbCr422_8_YY_CbCr_Semiplanar => 0x0210_0113,
1409            YCbCr420_8_YY_CrCb_Semiplanar => 0x020C_0114,
1410            YCbCr422_8_YY_CrCb_Semiplanar => 0x0210_0115,
1411            Data8 => 0x0108_0116,
1412            Data8s => 0x0108_0117,
1413            Data16 => 0x0110_0118,
1414            Data16s => 0x0110_0119,
1415            Data32 => 0x0120_011A,
1416            Data32s => 0x0120_011B,
1417            Data32f => 0x0120_011C,
1418            Data64 => 0x0140_011D,
1419            Data64s => 0x0140_011E,
1420            Data64f => 0x0140_011F,
1421            BayerRG10g40IDS => 0x4000_0001,
1422            BayerRG12g24IDS => 0x4000_0011,
1423            BayerGB10g40IDS => 0x4000_0002,
1424            BayerGB12g24IDS => 0x4000_0012,
1425            BayerGR10g40IDS => 0x4000_0003,
1426            BayerGR12g24IDS => 0x4000_0013,
1427            BayerBG10g40IDS => 0x4000_0004,
1428            BayerBG12g24IDS => 0x4000_0014,
1429            Mono10g40IDS => 0x4000_000F,
1430            Mono12g24IDS => 0x4000_001F,
1431        }
1432    }
1433}