-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
packet-gvsp.c
3654 lines (3117 loc) · 146 KB
/
packet-gvsp.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* packet-gvsp.c
* Routines for AIA GigE Vision (TM) Streaming Protocol dissection
* Copyright 2012, AIA <www.visiononline.org> All rights reserved
*
* GigE Vision (TM): GigE Vision a standard developed under the sponsorship of the AIA for
* the benefit of the machine vision industry. GVSP stands for GigE Vision (TM) Streaming
* Protocol.
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <[email protected]>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "config.h"
#include <epan/packet.h>
#include <epan/tfs.h>
#include <epan/conversation.h>
#include <epan/prefs.h>
void proto_register_gvsp(void);
void proto_reg_handoff_gvsp(void);
/*
* For all GenICam standards, including GenDC 1.0 and 1.1:
*
* https://www.emva.org/standards-technology/genicam/genicam-downloads/
*/
#define GVSP_MIN_PACKET_SIZE 8
#define GVSP_V2_MIN_PACKET_SIZE 20
#define GVSP_EXTENDED_ID_BIT 0x80
#define GVSP_EXTENDED_CHUNK_BIT 0x4000
#define GVSP_SIZE_OF_PART_INFO_LEADER ( 48 )
#define GVSP_SIZE_OF_PART_INFO_TRAILER ( 16 )
/*
Payload types
*/
#define GVSP_PAYLOAD_IMAGE ( 0x0001 )
#define GVSP_PAYLOAD_RAWDATA ( 0x0002 )
#define GVSP_PAYLOAD_FILE ( 0x0003 )
#define GVSP_PAYLOAD_CHUNKDATA ( 0x0004 )
#define GVSP_PAYLOAD_EXTENDEDCHUNKDATA ( 0x0005 ) /* Deprecated with GEV 2.0 */
#define GVSP_PAYLOAD_JPEG ( 0x0006 ) /* GEV 2.0 */
#define GVSP_PAYLOAD_JPEG2000 ( 0x0007 ) /* GEV 2.0 */
#define GVSP_PAYLOAD_H264 ( 0x0008 ) /* GEV 2.0 */
#define GVSP_PAYLOAD_MULTIZONEIMAGE ( 0x0009 ) /* GEV 2.0, deprecated with GEV 2.2 */
#define GVSP_PAYLOAD_MULTIPART ( 0x000A ) /* GEV 2.1 */
#define GVSP_PAYLOAD_GENDC ( 0x000B ) /* GEV 2.2 */
#define GVSP_PAYLOAD_DEVICE_SPECIFIC_START ( 0x8000 )
/*
GenDC data flag masks (GEV 2.2)
*/
#define GENDC_DESCRIPTOR_FLAG ( 0xC0 )
#define GENDC_DESCRIPTOR_START_FLAG ( 0x20 )
#define GENDC_DESCRIPTOR_END_FLAG ( 0x10 )
/*
GenDC header types(GEV 2.2)
*/
#define GENDC_HEADER_TYPE_CONTAINER ( 0x1000 )
#define GENDC_HEADER_TYPE_COMPONENT_HEADER ( 0x2000 )
#define GENDC_HEADER_TYPE_PART_CHUNK ( 0x4000 )
#define GENDC_HEADER_TYPE_PART_XML ( 0x4001 ) /* GenDC 1.1 */
#define GENDC_HEADER_TYPE_PART_1D ( 0x4100 )
#define GENDC_HEADER_TYPE_PART_2D ( 0x4200 )
#define GENDC_HEADER_TYPE_PART_2D_JPEG ( 0x4201 )
#define GENDC_HEADER_TYPE_PART_2D_JPEG2000 ( 0x4202 )
#define GENDC_HEADER_TYPE_PART_2D_H264 ( 0x4203 )
/*
GenDC component types (GEV 2.2)
*/
#define GENDC_COMPONENT_TYPEID_UNDEFINED ( 0x0000 )
#define GENDC_COMPONENT_TYPEID_INTENSITY ( 0x0001 )
#define GENDC_COMPONENT_TYPEID_INFRARED ( 0x0002 )
#define GENDC_COMPONENT_TYPEID_ULTRAVIOLET ( 0x0003 )
#define GENDC_COMPONENT_TYPEID_RANGE ( 0x0004 )
#define GENDC_COMPONENT_TYPEID_REFLECTANCE ( 0x0005 )
#define GENDC_COMPONENT_TYPEID_CONFIDENCE ( 0x0006 )
#define GENDC_COMPONENT_TYPEID_SCATTER ( 0x0007 )
#define GENDC_COMPONENT_TYPEID_DISPARITY ( 0x0008 )
#define GENDC_COMPONENT_TYPEID_MULTISPECTRAL ( 0x0009 )
#define GENDC_COMPONENT_TYPEID_METADATA ( 0x8001 )
#define GENDC_COMPONENT_TYPEID_RESERVED ( 0xFFFF )
/*
GVSP packet types
*/
#define GVSP_PACKET_LEADER ( 1 )
#define GVSP_PACKET_TRAILER ( 2 )
#define GVSP_PACKET_PAYLOAD ( 3 )
#define GVSP_PACKET_ALLIN ( 4 )
#define GVSP_PACKET_PAYLOAD_H264 ( 5 )
#define GVSP_PACKET_PAYLOAD_MULTIZONE ( 6 )
#define GVSP_PACKET_PAYLOAD_MULTIPART ( 7 ) /* GEV 2.1 */
#define GVSP_PACKET_PAYLOAD_GENDC ( 8 ) /* GEV 2.2 */
#define GVSP_PACKET_PAYLOAD_LAST ( 8 )
/*
GVSP Multi-Part data types (GEV 2.1)
*/
#define GVSP_MULTIPART_DATA_TYPE_2DIMAGE ( 0x0001 )
#define GVSP_MULTIPART_DATA_TYPE_2DPLANEBIPLANAR ( 0x0002 )
#define GVSP_MULTIPART_DATA_TYPE_2DPLANETRIPLANAR ( 0x0003 )
#define GVSP_MULTIPART_DATA_TYPE_2DPLANEQUADPLANAR ( 0x0004 )
#define GVSP_MULTIPART_DATA_TYPE_3DIMAGE ( 0x0005 )
#define GVSP_MULTIPART_DATA_TYPE_3DPLANEBIPLANAR ( 0x0006 )
#define GVSP_MULTIPART_DATA_TYPE_3DPLANETRIPLANAR ( 0x0007 )
#define GVSP_MULTIPART_DATA_TYPE_3DPLANEQUADPLANAR ( 0x0008 )
#define GVSP_MULTIPART_DATA_TYPE_CONFIDENCEMAP ( 0x0009 )
#define GVSP_MULTIPART_DATA_TYPE_CHUNKDATA ( 0x000A )
#define GVSP_MULTIPART_DATA_TYPE_JPEG ( 0x000B )
#define GVSP_MULTIPART_DATA_TYPE_JPEG2000 ( 0x000C )
#define GVSP_MULTIPART_DATA_TYPE_DEVICESPECIFIC ( 0x8000 )
/*
GVSP statuses
*/
#define GEV_STATUS_SUCCESS ( 0x0000 )
#define GEV_STATUS_PACKET_RESEND ( 0x0100 )
#define GEV_STATUS_NOT_IMPLEMENTED ( 0x8001 )
#define GEV_STATUS_INVALID_PARAMETER ( 0x8002 )
#define GEV_STATUS_INVALID_ADDRESS ( 0x8003 )
#define GEV_STATUS_WRITE_PROTECT ( 0x8004 )
#define GEV_STATUS_BAD_ALIGNMENT ( 0x8005 )
#define GEV_STATUS_ACCESS_DENIED ( 0x8006 )
#define GEV_STATUS_BUSY ( 0x8007 )
#define GEV_STATUS_LOCAL_PROBLEM ( 0x8008 ) /* deprecated */
#define GEV_STATUS_MSG_MISMATCH ( 0x8009 ) /* deprecated */
#define GEV_STATUS_INVALID_PROTOCOL ( 0x800A ) /* deprecated */
#define GEV_STATUS_NO_MSG ( 0x800B ) /* deprecated */
#define GEV_STATUS_PACKET_UNAVAILABLE ( 0x800C )
#define GEV_STATUS_DATA_OVERRUN ( 0x800D )
#define GEV_STATUS_INVALID_HEADER ( 0x800E )
#define GEV_STATUS_WRONG_CONFIG ( 0x800F ) /* deprecated */
#define GEV_STATUS_PACKET_NOT_YET_AVAILABLE ( 0x8010 )
#define GEV_STATUS_PACKET_AND_PREV_REMOVED_FROM_MEMORY ( 0x8011 )
#define GEV_STATUS_PACKET_REMOVED_FROM_MEMORY ( 0x8012 )
#define GEV_STATUS_NO_REF_TIME ( 0x8013 ) /* GEV 2.0 */
#define GEV_STATUS_PACKET_TEMPORARILY_UNAVAILABLE ( 0x8014 ) /* GEV 2.0 */
#define GEV_STATUS_OVERFLOW ( 0x8015 ) /* GEV 2.0 */
#define GEV_STATUS_ACTION_LATE ( 0x8016 ) /* GEV 2.0 */
#define GEV_STATUS_LEADER_TRAILER_OVERFLOW ( 0x8017 ) /* GEV 2.1 */
#define GEV_STATUS_LAST ( 0x8017 )
#define GEV_STATUS_ERROR ( 0x8FFF )
/*
Pixel type color
*/
#define GVSP_PIX_MONO ( 0x01000000 )
#define GVSP_PIX_COLOR ( 0x02000000 )
#define GVSP_PIX_CUSTOM ( 0x80000000 )
/*
Pixel types
*/
#define GVSP_PIX_MONO1P 0x01010037
#define GVSP_PIX_MONO2P 0x01020038
#define GVSP_PIX_MONO4P 0x01040039
#define GVSP_PIX_MONO8 0x01080001
#define GVSP_PIX_MONO8S 0x01080002
#define GVSP_PIX_MONO10 0x01100003
#define GVSP_PIX_MONO10P 0x010A0046
#define GVSP_PIX_MONO12 0x01100005
#define GVSP_PIX_MONO12P 0x010C0047
#define GVSP_PIX_MONO14 0x01100025
#define GVSP_PIX_MONO14P 0x010E0104
#define GVSP_PIX_MONO16 0x01100007
#define GVSP_PIX_MONO32 0x01200111
#define GVSP_PIX_BAYERBG4P 0x01040110
#define GVSP_PIX_BAYERBG8 0x0108000B
#define GVSP_PIX_BAYERBG10 0x0110000F
#define GVSP_PIX_BAYERBG10P 0x010A0052
#define GVSP_PIX_BAYERBG12 0x01100013
#define GVSP_PIX_BAYERBG12P 0x010C0053
#define GVSP_PIX_BAYERBG14 0x0110010C
#define GVSP_PIX_BAYERBG14P 0x010E0108
#define GVSP_PIX_BAYERBG16 0x01100031
#define GVSP_PIX_BAYERGB4P 0x0104010F
#define GVSP_PIX_BAYERGB8 0x0108000A
#define GVSP_PIX_BAYERGB10 0x0110000E
#define GVSP_PIX_BAYERGB10P 0x010A0054
#define GVSP_PIX_BAYERGB12 0x01100012
#define GVSP_PIX_BAYERGB12P 0x010C0055
#define GVSP_PIX_BAYERGB14 0x0110010B
#define GVSP_PIX_BAYERGB14P 0x010E0107
#define GVSP_PIX_BAYERGB16 0x01100030
#define GVSP_PIX_BAYERGR4P 0x0104010D
#define GVSP_PIX_BAYERGR8 0x01080008
#define GVSP_PIX_BAYERGR10 0x0110000C
#define GVSP_PIX_BAYERGR10P 0x010A0056
#define GVSP_PIX_BAYERGR12 0x01100010
#define GVSP_PIX_BAYERGR12P 0x010C0057
#define GVSP_PIX_BAYERGR14 0x01100109
#define GVSP_PIX_BAYERGR14P 0x010E0105
#define GVSP_PIX_BAYERGR16 0x0110002E
#define GVSP_PIX_BAYERRG4P 0x0104010E
#define GVSP_PIX_BAYERRG8 0x01080009
#define GVSP_PIX_BAYERRG10 0x0110000D
#define GVSP_PIX_BAYERRG10P 0x010A0058
#define GVSP_PIX_BAYERRG12 0x01100011
#define GVSP_PIX_BAYERRG12P 0x010C0059
#define GVSP_PIX_BAYERRG14 0x0110010A
#define GVSP_PIX_BAYERRG14P 0x010E0106
#define GVSP_PIX_BAYERRG16 0x0110002F
#define GVSP_PIX_RGBA8 0x02200016
#define GVSP_PIX_RGBA10 0x0240005F
#define GVSP_PIX_RGBA10P 0x02280060
#define GVSP_PIX_RGBA12 0x02400061
#define GVSP_PIX_RGBA12P 0x02300062
#define GVSP_PIX_RGBA14 0x02400063
#define GVSP_PIX_RGBA16 0x02400064
#define GVSP_PIX_RGB8 0x02180014
#define GVSP_PIX_RGB8_PLANAR 0x02180021
#define GVSP_PIX_RGB10 0x02300018
#define GVSP_PIX_RGB10_PLANAR 0x02300022
#define GVSP_PIX_RGB10P 0x021E005C
#define GVSP_PIX_RGB10P32 0x0220001D
#define GVSP_PIX_RGB12 0x0230001A
#define GVSP_PIX_RGB12_PLANAR 0x02300023
#define GVSP_PIX_RGB12P 0x0224005D
#define GVSP_PIX_RGB14 0x0230005E
#define GVSP_PIX_RGB16 0x02300033
#define GVSP_PIX_RGB16_PLANAR 0x02300024
#define GVSP_PIX_RGB565P 0x02100035
#define GVSP_PIX_BGRA8 0x02200017
#define GVSP_PIX_BGRA10 0x0240004C
#define GVSP_PIX_BGRA10P 0x0228004D
#define GVSP_PIX_BGRA12 0x0240004E
#define GVSP_PIX_BGRA12P 0x0230004F
#define GVSP_PIX_BGRA14 0x02400050
#define GVSP_PIX_BGRA16 0x02400051
#define GVSP_PIX_BGR8 0x02180015
#define GVSP_PIX_BGR10 0x02300019
#define GVSP_PIX_BGR10P 0x021E0048
#define GVSP_PIX_BGR12 0x0230001B
#define GVSP_PIX_BGR12P 0x02240049
#define GVSP_PIX_BGR14 0x0230004A
#define GVSP_PIX_BGR16 0x0230004B
#define GVSP_PIX_BGR565P 0x02100036
#define GVSP_PIX_R8 0x010800C9
#define GVSP_PIX_R10 0x01100120
#define GVSP_PIX_R10_DEPRECATED 0x010A00CA
#define GVSP_PIX_R12 0x01100121
#define GVSP_PIX_R12_DEPRECATED 0x010C00CB
#define GVSP_PIX_R16 0x011000CC
#define GVSP_PIX_G8 0x010800CD
#define GVSP_PIX_G10 0x01100122
#define GVSP_PIX_G10_DEPRECATED 0x010A00CE
#define GVSP_PIX_G12 0x01100123
#define GVSP_PIX_G12_DEPRECATED 0x010C00CF
#define GVSP_PIX_G16 0x011000D0
#define GVSP_PIX_B8 0x010800D1
#define GVSP_PIX_B10 0x01100124
#define GVSP_PIX_B10_DEPRECATED 0x010A00D2
#define GVSP_PIX_B12 0x01100125
#define GVSP_PIX_B12_DEPRECATED 0x010C00D3
#define GVSP_PIX_B16 0x011000D4
#define GVSP_PIX_COORD3D_ABC8 0x021800B2
#define GVSP_PIX_COORD3D_ABC8_PLANAR 0x021800B3
#define GVSP_PIX_COORD3D_ABC10P 0x021E00DB
#define GVSP_PIX_COORD3D_ABC10P_PLANAR 0x021E00DC
#define GVSP_PIX_COORD3D_ABC12P 0x022400DE
#define GVSP_PIX_COORD3D_ABC12P_PLANAR 0x022400DF
#define GVSP_PIX_COORD3D_ABC16 0x023000B9
#define GVSP_PIX_COORD3D_ABC16_PLANAR 0x023000BA
#define GVSP_PIX_COORD3D_ABC32F 0x026000C0
#define GVSP_PIX_COORD3D_ABC32F_PLANAR 0x026000C1
#define GVSP_PIX_COORD3D_AC8 0x021000B4
#define GVSP_PIX_COORD3D_AC8_PLANAR 0x021000B5
#define GVSP_PIX_COORD3D_AC10P 0x021400F0
#define GVSP_PIX_COORD3D_AC10P_PLANAR 0x021400F1
#define GVSP_PIX_COORD3D_AC12P 0x021800F2
#define GVSP_PIX_COORD3D_AC12P_PLANAR 0x021800F3
#define GVSP_PIX_COORD3D_AC16 0x022000BB
#define GVSP_PIX_COORD3D_AC16_PLANAR 0x022000BC
#define GVSP_PIX_COORD3D_AC32F 0x024000C2
#define GVSP_PIX_COORD3D_AC32F_PLANAR 0x024000C3
#define GVSP_PIX_COORD3D_A8 0x010800AF
#define GVSP_PIX_COORD3D_A10P 0x010A00D5
#define GVSP_PIX_COORD3D_A12P 0x010C00D8
#define GVSP_PIX_COORD3D_A16 0x011000B6
#define GVSP_PIX_COORD3D_A32F 0x012000BD
#define GVSP_PIX_COORD3D_B8 0x010800B0
#define GVSP_PIX_COORD3D_B10P 0x010A00D6
#define GVSP_PIX_COORD3D_B12P 0x010C00D9
#define GVSP_PIX_COORD3D_B16 0x011000B7
#define GVSP_PIX_COORD3D_B32F 0x012000BE
#define GVSP_PIX_COORD3D_C8 0x010800B1
#define GVSP_PIX_COORD3D_C10P 0x010A00D7
#define GVSP_PIX_COORD3D_C12P 0x010C00DA
#define GVSP_PIX_COORD3D_C16 0x011000B8
#define GVSP_PIX_COORD3D_C32F 0x012000BF
#define GVSP_PIX_CONFIDENCE1 0x010800C4
#define GVSP_PIX_CONFIDENCE1P 0x010100C5
#define GVSP_PIX_CONFIDENCE8 0x010800C6
#define GVSP_PIX_CONFIDENCE16 0x011000C7
#define GVSP_PIX_CONFIDENCE32F 0x012000C8
#define GVSP_PIX_BICOLORBGRG8 0x021000A6
#define GVSP_PIX_BICOLORBGRG10 0x022000A9
#define GVSP_PIX_BICOLORBGRG10P 0x021400AA
#define GVSP_PIX_BICOLORBGRG12 0x022000AD
#define GVSP_PIX_BICOLORBGRG12P 0x021800AE
#define GVSP_PIX_BICOLORRGBG8 0x021000A5
#define GVSP_PIX_BICOLORRGBG10 0x022000A7
#define GVSP_PIX_BICOLORRGBG10P 0x021400A8
#define GVSP_PIX_BICOLORRGBG12 0x022000AB
#define GVSP_PIX_BICOLORRGBG12P 0x021800AC
#define GVSP_PIX_DATA8 0x01080116
#define GVSP_PIX_DATA8S 0x01080117
#define GVSP_PIX_DATA16 0x01100118
#define GVSP_PIX_DATA16S 0x01100119
#define GVSP_PIX_DATA32 0x0120011A
#define GVSP_PIX_DATA32F 0x0120011C
#define GVSP_PIX_DATA32S 0x0120011B
#define GVSP_PIX_DATA64 0x0140011D
#define GVSP_PIX_DATA64F 0x0140011F
#define GVSP_PIX_DATA64S 0x0140011E
#define GVSP_PIX_SCF1WBWG8 0x01080067
#define GVSP_PIX_SCF1WBWG10 0x01100068
#define GVSP_PIX_SCF1WBWG10P 0x010A0069
#define GVSP_PIX_SCF1WBWG12 0x0110006A
#define GVSP_PIX_SCF1WBWG12P 0x010C006B
#define GVSP_PIX_SCF1WBWG14 0x0110006C
#define GVSP_PIX_SCF1WBWG16 0x0110006D
#define GVSP_PIX_SCF1WGWB8 0x0108006E
#define GVSP_PIX_SCF1WGWB10 0x0110006F
#define GVSP_PIX_SCF1WGWB10P 0x010A0070
#define GVSP_PIX_SCF1WGWB12 0x01100071
#define GVSP_PIX_SCF1WGWB12P 0x010C0072
#define GVSP_PIX_SCF1WGWB14 0x01100073
#define GVSP_PIX_SCF1WGWB16 0x01100074
#define GVSP_PIX_SCF1WGWR8 0x01080075
#define GVSP_PIX_SCF1WGWR10 0x01100076
#define GVSP_PIX_SCF1WGWR10P 0x010A0077
#define GVSP_PIX_SCF1WGWR12 0x01100078
#define GVSP_PIX_SCF1WGWR12P 0x010C0079
#define GVSP_PIX_SCF1WGWR14 0x0110007A
#define GVSP_PIX_SCF1WGWR16 0x0110007B
#define GVSP_PIX_SCF1WRWG8 0x0108007C
#define GVSP_PIX_SCF1WRWG10 0x0110007D
#define GVSP_PIX_SCF1WRWG10P 0x010A007E
#define GVSP_PIX_SCF1WRWG12 0x0110007F
#define GVSP_PIX_SCF1WRWG12P 0x010C0080
#define GVSP_PIX_SCF1WRWG14 0x01100081
#define GVSP_PIX_SCF1WRWG16 0x01100082
#define GVSP_PIX_YCBCR8 0x0218005B
#define GVSP_PIX_YCBCR8_CBYCR 0x0218003A
#define GVSP_PIX_YCBCR10_CBYCR 0x02300083
#define GVSP_PIX_YCBCR10P_CBYCR 0x021E0084
#define GVSP_PIX_YCBCR12_CBYCR 0x02300085
#define GVSP_PIX_YCBCR12P_CBYCR 0x02240086
#define GVSP_PIX_YCBCR411_8 0x020C005A
#define GVSP_PIX_YCBCR411_8_CBYYCRYY 0x020C003C
#define GVSP_PIX_YCBCR420_8_YY_CBCR_SEMIPLANAR 0x020C0112
#define GVSP_PIX_YCBCR420_8_YY_CRCB_SEMIPLANAR 0x020C0114
#define GVSP_PIX_YCBCR422_8 0x0210003B
#define GVSP_PIX_YCBCR422_8_CBYCRY 0x02100043
#define GVSP_PIX_YCBCR422_8_YY_CBCR_SEMIPLANAR 0x02100113
#define GVSP_PIX_YCBCR422_8_YY_CRCB_SEMIPLANAR 0x02100115
#define GVSP_PIX_YCBCR422_10 0x02200065
#define GVSP_PIX_YCBCR422_10_CBYCRY 0x02200099
#define GVSP_PIX_YCBCR422_10P 0x02140087
#define GVSP_PIX_YCBCR422_10P_CBYCRY 0x0214009A
#define GVSP_PIX_YCBCR422_12 0x02200066
#define GVSP_PIX_YCBCR422_12_CBYCRY 0x0220009B
#define GVSP_PIX_YCBCR422_12P 0x02180088
#define GVSP_PIX_YCBCR422_12P_CBYCRY 0x0218009C
#define GVSP_PIX_YCBCR601_8_CBYCR 0x0218003D
#define GVSP_PIX_YCBCR601_10_CBYCR 0x02300089
#define GVSP_PIX_YCBCR601_10P_CBYCR 0x021E008A
#define GVSP_PIX_YCBCR601_12_CBYCR 0x0230008B
#define GVSP_PIX_YCBCR601_12P_CBYCR 0x0224008C
#define GVSP_PIX_YCBCR601_411_8_CBYYCRYY 0x020C003F
#define GVSP_PIX_YCBCR601_422_8 0x0210003E
#define GVSP_PIX_YCBCR601_422_8_CBYCRY 0x02100044
#define GVSP_PIX_YCBCR601_422_10 0x0220008D
#define GVSP_PIX_YCBCR601_422_10_CBYCRY 0x0220009D
#define GVSP_PIX_YCBCR601_422_10P 0x0214008E
#define GVSP_PIX_YCBCR601_422_10P_CBYCRY 0x0214009E
#define GVSP_PIX_YCBCR601_422_12 0x0220008F
#define GVSP_PIX_YCBCR601_422_12_CBYCRY 0x0220009F
#define GVSP_PIX_YCBCR601_422_12P 0x02180090
#define GVSP_PIX_YCBCR601_422_12P_CBYCRY 0x021800A0
#define GVSP_PIX_YCBCR709_8_CBYCR 0x02180040
#define GVSP_PIX_YCBCR709_10_CBYCR 0x02300091
#define GVSP_PIX_YCBCR709_10P_CBYCR 0x021E0092
#define GVSP_PIX_YCBCR709_12_CBYCR 0x02300093
#define GVSP_PIX_YCBCR709_12P_CBYCR 0x02240094
#define GVSP_PIX_YCBCR709_411_8_CBYYCRYY 0x020C0042
#define GVSP_PIX_YCBCR709_422_8 0x02100041
#define GVSP_PIX_YCBCR709_422_8_CBYCRY 0x02100045
#define GVSP_PIX_YCBCR709_422_10 0x02200095
#define GVSP_PIX_YCBCR709_422_10_CBYCRY 0x022000A1
#define GVSP_PIX_YCBCR709_422_10P 0x02140096
#define GVSP_PIX_YCBCR709_422_10P_CBYCRY 0x021400A2
#define GVSP_PIX_YCBCR709_422_12 0x02200097
#define GVSP_PIX_YCBCR709_422_12_CBYCRY 0x022000A3
#define GVSP_PIX_YCBCR709_422_12P 0x02180098
#define GVSP_PIX_YCBCR709_422_12P_CBYCRY 0x021800A4
#define GVSP_PIX_YCBCR2020_8_CBYCR 0x021800F4
#define GVSP_PIX_YCBCR2020_10_CBYCR 0x023000F5
#define GVSP_PIX_YCBCR2020_10P_CBYCR 0x021E00F6
#define GVSP_PIX_YCBCR2020_12_CBYCR 0x023000F7
#define GVSP_PIX_YCBCR2020_12P_CBYCR 0x022400F8
#define GVSP_PIX_YCBCR2020_411_8_CBYYCRYY 0x020C00F9
#define GVSP_PIX_YCBCR2020_422_8 0x021000FA
#define GVSP_PIX_YCBCR2020_422_8_CBYCRY 0x021000FB
#define GVSP_PIX_YCBCR2020_422_10 0x022000FC
#define GVSP_PIX_YCBCR2020_422_10_CBYCRY 0x022000FD
#define GVSP_PIX_YCBCR2020_422_10P 0x021400FE
#define GVSP_PIX_YCBCR2020_422_10P_CBYCRY 0x021400FF
#define GVSP_PIX_YCBCR2020_422_12 0x02200100
#define GVSP_PIX_YCBCR2020_422_12_CBYCRY 0x02200101
#define GVSP_PIX_YCBCR2020_422_12P 0x02180102
#define GVSP_PIX_YCBCR2020_422_12P_CBYCRY 0x02180103
#define GVSP_PIX_YUV8_UYV 0x02180020
#define GVSP_PIX_YUV411_8_UYYVYY 0x020C001E
#define GVSP_PIX_YUV422_8 0x02100032
#define GVSP_PIX_YUV422_8_UYVY 0x0210001F
#define GVSP_PIX_MONO10PACKED 0x010C0004
#define GVSP_PIX_MONO12PACKED 0x010C0006
#define GVSP_PIX_BAYERBG10PACKED 0x010C0029
#define GVSP_PIX_BAYERBG12PACKED 0x010C002D
#define GVSP_PIX_BAYERGB10PACKED 0x010C0028
#define GVSP_PIX_BAYERGB12PACKED 0x010C002C
#define GVSP_PIX_BAYERGR10PACKED 0x010C0026
#define GVSP_PIX_BAYERGR12PACKED 0x010C002A
#define GVSP_PIX_BAYERRG10PACKED 0x010C0027
#define GVSP_PIX_BAYERRG12PACKED 0x010C002B
#define GVSP_PIX_RGB10V1PACKED 0x0220001C
#define GVSP_PIX_RGB12V1PACKED 0x02240034
/* Structure to hold GVSP packet information */
typedef struct _gvsp_packet_info
{
int chunk;
uint8_t format;
uint16_t status;
uint16_t payloadtype;
uint64_t blockid;
uint32_t packetid;
int enhanced;
int flag_resendrangeerror;
int flag_previousblockdropped;
int flag_packetresend;
} gvsp_packet_info;
/*Define the gvsp proto */
static int proto_gvsp;
/*static int global_gvsp_port = 20202;*/
static dissector_handle_t gvsp_handle;
/* Define the tree for gvsp */
static int ett_gvsp;
static int ett_gvsp_flags;
static int ett_gvsp_header;
static int ett_gvsp_payload;
static int ett_gvsp_trailer;
static int ett_gvsp_pixelformat;
static int ett_gvsp_fieldinfo;
static int ett_gvsp_cs;
static int ett_gvsp_sc_zone_direction;
static int ett_gvsp_zoneinfo;
static int ett_gvsp_zoneinfo_multipart;
static int ett_gvsp_partinfo_leader;
static int ett_gvsp_partinfo_trailer;
static int ett_gvsp_gendc_leader_flags;
static int ett_gvsp_gendc_payload_data_flags;
static int ett_gvsp_gendc_payload_flow_flags;
static int ett_gvsp_gendc_container_descriptor;
static int ett_gvsp_gendc_container_header_flags;
static int ett_gvsp_gendc_container_header_variable_fields;
static int ett_gvsp_gendc_container_header_component_offsets;
static int ett_gvsp_gendc_component_header;
static int ett_gvsp_gendc_part_offsets;
static int ett_gvsp_gendc_part_header;
static int ett_gvsp_gendc_component_header_flags;
static int ett_gvsp_gendc_part_header_flags;
static const value_string statusnames[] = {
{ GEV_STATUS_SUCCESS, "GEV_STATUS_SUCCESS" },
{ GEV_STATUS_PACKET_RESEND, "GEV_STATUS_PACKET_RESEND" },
{ GEV_STATUS_NOT_IMPLEMENTED, "GEV_STATUS_NOT_IMPLEMENTED" },
{ GEV_STATUS_INVALID_PARAMETER, "GEV_STATUS_INVALID_PARAMETER" },
{ GEV_STATUS_INVALID_ADDRESS, "GEV_STATUS_INVALID_ADDRESS" },
{ GEV_STATUS_WRITE_PROTECT, "GEV_STATUS_WRITE_PROTECT" },
{ GEV_STATUS_BAD_ALIGNMENT, "GEV_STATUS_BAD_ALIGNMENT" },
{ GEV_STATUS_ACCESS_DENIED, "GEV_STATUS_ACCESS_DENIED" },
{ GEV_STATUS_BUSY, "GEV_STATUS_BUSY" },
{ GEV_STATUS_LOCAL_PROBLEM, "GEV_STATUS_LOCAL_PROBLEM (deprecated)" },
{ GEV_STATUS_MSG_MISMATCH, "GEV_STATUS_MSG_MISMATCH (deprecated)" },
{ GEV_STATUS_INVALID_PROTOCOL, "GEV_STATUS_INVALID_PROTOCOL (deprecated)" },
{ GEV_STATUS_NO_MSG, "GEV_STATUS_NO_MSG (deprecated)" },
{ GEV_STATUS_PACKET_UNAVAILABLE, "GEV_STATUS_PACKET_UNAVAILABLE" },
{ GEV_STATUS_DATA_OVERRUN, "GEV_STATUS_DATA_OVERRUN" },
{ GEV_STATUS_INVALID_HEADER, "GEV_STATUS_INVALID_HEADER" },
{ GEV_STATUS_WRONG_CONFIG, "GEV_STATUS_WRONG_CONFIG (deprecated)" },
{ GEV_STATUS_PACKET_NOT_YET_AVAILABLE, "GEV_STATUS_PACKET_NOT_YET_AVAILABLE" },
{ GEV_STATUS_PACKET_AND_PREV_REMOVED_FROM_MEMORY, "GEV_STATUS_PACKET_AND_PREV_REMOVED_FROM_MEMORY" },
{ GEV_STATUS_PACKET_REMOVED_FROM_MEMORY, "GEV_STATUS_PACKET_REMOVED_FROM_MEMORY" },
{ GEV_STATUS_NO_REF_TIME, "GEV_STATUS_NO_REF_TIME" },
{ GEV_STATUS_PACKET_TEMPORARILY_UNAVAILABLE, "GEV_STATUS_PACKET_TEMPORARILY_UNAVAILABLE" },
{ GEV_STATUS_OVERFLOW, "GEV_STATUS_OVERFLOW" },
{ GEV_STATUS_ACTION_LATE, "GEV_STATUS_ACTION_LATE" },
{ GEV_STATUS_LEADER_TRAILER_OVERFLOW, "GEV_STATUS_LEADER_TRAILER_OVERFLOW" },
{ GEV_STATUS_ERROR, "GEV_STATUS_ERROR" },
{ 0, NULL }
};
static value_string_ext statusnames_ext = VALUE_STRING_EXT_INIT(statusnames);
static const value_string formatnames[] = {
{ GVSP_PACKET_LEADER, "LEADER" },
{ GVSP_PACKET_TRAILER, "TRAILER" },
{ GVSP_PACKET_PAYLOAD, "PAYLOAD" },
{ GVSP_PACKET_ALLIN, "ALLIN" },
{ GVSP_PACKET_PAYLOAD_H264, "H264" },
{ GVSP_PACKET_PAYLOAD_MULTIZONE, "MULTI-ZONE" },
{ GVSP_PACKET_PAYLOAD_MULTIPART, "MULTI-PART" },
{ GVSP_PACKET_PAYLOAD_GENDC, "GENDC" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_LEADER, "LEADER (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_TRAILER, "TRAILER (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_PAYLOAD, "PAYLOAD (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_ALLIN, "ALL-IN (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_PAYLOAD_H264, "H264 (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_PAYLOAD_MULTIZONE, "MULTI-ZONE (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_PAYLOAD_MULTIPART, "MULTI-PART (ext IDs)" },
{ GVSP_EXTENDED_ID_BIT | GVSP_PACKET_PAYLOAD_GENDC, "GENDC (ext IDs)" },
{ 0, NULL }
};
static const value_string payloadtypenames[] = {
{ GVSP_PAYLOAD_IMAGE, "IMAGE" },
{ GVSP_PAYLOAD_RAWDATA, "RAW DATA" },
{ GVSP_PAYLOAD_FILE, "FILE" },
{ GVSP_PAYLOAD_CHUNKDATA, "CHUNK DATA" },
{ GVSP_PAYLOAD_EXTENDEDCHUNKDATA, "EXTENDED CHUNK DATA (obsolete with v2.0)" },
{ GVSP_PAYLOAD_JPEG, "JPEG" },
{ GVSP_PAYLOAD_JPEG2000, "JPEG 2000" },
{ GVSP_PAYLOAD_H264, "H264" },
{ GVSP_PAYLOAD_MULTIZONEIMAGE, "MULTI-ZONE IMAGE" },
{ GVSP_PAYLOAD_MULTIPART, "MULTI-PART" },
{ GVSP_PAYLOAD_GENDC, "GENDC" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_IMAGE, "IMAGE (v2.0 chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_RAWDATA, "RAW DATA (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_FILE, "FILE (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_CHUNKDATA, "CHUNK DATA (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_EXTENDEDCHUNKDATA, "EXTENDED CHUNK DATA (v2.0 chunks?)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_JPEG, "JPEG (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_JPEG2000, "JPEG 2000 (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_H264, "H264 (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_MULTIZONEIMAGE, "MULTI-ZONE IMAGE (v2.0 Chunks)" },
{ GVSP_EXTENDED_CHUNK_BIT | GVSP_PAYLOAD_MULTIPART, "MULTI-PART (v2.0 Chunks)" },
{ 0, NULL }
};
static value_string_ext payloadtypenames_ext = VALUE_STRING_EXT_INIT(payloadtypenames);
static const value_string multipartdatatypenames[] = {
{ GVSP_MULTIPART_DATA_TYPE_2DIMAGE, "2D IMAGE" },
{ GVSP_MULTIPART_DATA_TYPE_2DPLANEBIPLANAR, "2D PLANE BI-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_2DPLANETRIPLANAR, "2D PLANE TRI-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_2DPLANEQUADPLANAR, "2D PLANE QUAD-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_3DIMAGE, "3D IMAGE" },
{ GVSP_MULTIPART_DATA_TYPE_3DPLANEBIPLANAR, "3D PLANE BI-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_3DPLANETRIPLANAR, "3D PLANE TRI-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_3DPLANEQUADPLANAR, "3D PLANE QUAD-PLANAR" },
{ GVSP_MULTIPART_DATA_TYPE_CONFIDENCEMAP, "CONFIDENCE MAP" },
{ GVSP_MULTIPART_DATA_TYPE_CHUNKDATA, "CHUNK DATA" },
{ GVSP_MULTIPART_DATA_TYPE_JPEG, "JPEG" },
{ GVSP_MULTIPART_DATA_TYPE_JPEG2000, "JPEG 2000" },
{ GVSP_MULTIPART_DATA_TYPE_DEVICESPECIFIC, "DEVICE SPECIFIC" },
{ 0, NULL }
};
static value_string_ext multipartdatatypenames_ext = VALUE_STRING_EXT_INIT(multipartdatatypenames);
static const value_string pixeltypenames[] =
{
{ GVSP_PIX_MONO1P, "Mono1p (Monochrome 1-bit packed)" },
{ GVSP_PIX_CONFIDENCE1P, "Confidence1p (Confidence 1-bit packed)" },
{ GVSP_PIX_MONO2P, "Mono2p (Monochrome 2-bit packed)" },
{ GVSP_PIX_MONO4P, "Mono4p (Monochrome 4-bit packed)" },
{ GVSP_PIX_BAYERGR4P, "BayerGR4p (Bayer Green-Red 4-bit packed)" },
{ GVSP_PIX_BAYERRG4P, "BayerRG4p (Bayer Red-Green 4-bit packed)" },
{ GVSP_PIX_BAYERGB4P, "BayerGB4p (Bayer Green-Blue 4-bit packed)" },
{ GVSP_PIX_BAYERBG4P, "BayerBG4p (Bayer Blue-Green 4-bit packed)" },
{ GVSP_PIX_MONO8, "Mono8 (Monochrome 8-bit)" },
{ GVSP_PIX_MONO8S, "Mono8s (Monochrome 8-bit signed)" },
{ GVSP_PIX_BAYERGR8, "BayerGR8 (Bayer Green-Red 8-bit)" },
{ GVSP_PIX_BAYERRG8, "BayerRG8 (Bayer Red-Green 8-bit)" },
{ GVSP_PIX_BAYERGB8, "BayerGB8 (Bayer Green-Blue 8-bit)" },
{ GVSP_PIX_BAYERBG8, "BayerBG8 (Bayer Blue-Green 8-bit)" },
{ GVSP_PIX_SCF1WBWG8, "SCF1WBWG8 (Sparse Color Filter #1 White-Blue-White-Green 8-bit)" },
{ GVSP_PIX_SCF1WGWB8, "SCF1WGWB8 (Sparse Color Filter #1 White-Green-White-Blue 8-bit)" },
{ GVSP_PIX_SCF1WGWR8, "SCF1WGWR8 (Sparse Color Filter #1 White-Green-White-Red 8-bit)" },
{ GVSP_PIX_SCF1WRWG8, "SCF1WRWG8 (Sparse Color Filter #1 White-Red-White-Green 8-bit)" },
{ GVSP_PIX_COORD3D_A8, "Coord3D_A8 (3D coordinate A 8-bit)" },
{ GVSP_PIX_COORD3D_B8, "Coord3D_B8 (3D coordinate B 8-bit)" },
{ GVSP_PIX_COORD3D_C8, "Coord3D_C8 (3D coordinate C 8-bit)" },
{ GVSP_PIX_CONFIDENCE1, "Confidence1 (Confidence 1-bit unpacked)" },
{ GVSP_PIX_CONFIDENCE8, "Confidence8 (Confidence 8-bit)" },
{ GVSP_PIX_R8, "R8 (Red 8-bit)" },
{ GVSP_PIX_G8, "G8 (Green 8-bit)" },
{ GVSP_PIX_B8, "B8 (Blue 8-bit)" },
{ GVSP_PIX_DATA8, "Data8 (Data 8-bit)" },
{ GVSP_PIX_DATA8S, "Data8s (Data 8-bit signed)" },
{ GVSP_PIX_MONO10P, "Mono10p (Monochrome 10-bit packed)" },
{ GVSP_PIX_BAYERBG10P, "BayerBG10p (Bayer Blue-Green 10-bit packed)" },
{ GVSP_PIX_BAYERGB10P, "BayerGB10p (Bayer Green-Blue 10-bit packed)" },
{ GVSP_PIX_BAYERGR10P, "BayerGR10p (Bayer Green-Red 10-bit packed)" },
{ GVSP_PIX_BAYERRG10P, "BayerRG10p (Bayer Red-Green 10-bit packed)" },
{ GVSP_PIX_SCF1WBWG10P, "SCF1WBWG10p (Sparse Color Filter #1 White-Blue-White-Green 10-bit packed)" },
{ GVSP_PIX_SCF1WGWB10P, "SCF1WGWB10p (Sparse Color Filter #1 White-Green-White-Blue 10-bit packed)" },
{ GVSP_PIX_SCF1WGWR10P, "SCF1WGWR10p (Sparse Color Filter #1 White-Green-White-Red 10-bit packed)" },
{ GVSP_PIX_SCF1WRWG10P, "SCF1WRWG10p (Sparse Color Filter #1 White-Red-White-Green 10-bit packed)" },
{ GVSP_PIX_R10_DEPRECATED, "R10_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_G10_DEPRECATED, "G10_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_B10_DEPRECATED, "B10_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_COORD3D_A10P, "Coord3D_A10p (3D coordinate A 10-bit packed)" },
{ GVSP_PIX_COORD3D_B10P, "Coord3D_B10p (3D coordinate B 10-bit packed)" },
{ GVSP_PIX_COORD3D_C10P, "Coord3D_C10p (3D coordinate C 10-bit packed)" },
{ GVSP_PIX_MONO10PACKED, "GVSP_Mono10Packed (GigE Vision specific format, Monochrome 10-bit packed)" },
{ GVSP_PIX_MONO12PACKED, "GVSP_Mono12Packed (GigE Vision specific format, Monochrome 12-bit packed)" },
{ GVSP_PIX_BAYERGR10PACKED, "GVSP_BayerGR10Packed (GigE Vision specific format, Bayer Green-Red 10-bit packed)" },
{ GVSP_PIX_BAYERRG10PACKED, "GVSP_BayerRG10Packed (GigE Vision specific format, Bayer Red-Green 10-bit packed)" },
{ GVSP_PIX_BAYERGB10PACKED, "GVSP_BayerGB10Packed (GigE Vision specific format, Bayer Green-Blue 10-bit packed)" },
{ GVSP_PIX_BAYERBG10PACKED, "GVSP_BayerBG10Packed (GigE Vision specific format, Bayer Blue-Green 10-bit packed)" },
{ GVSP_PIX_BAYERGR12PACKED, "GVSP_BayerGR12Packed (GigE Vision specific format, Bayer Green-Red 12-bit packed)" },
{ GVSP_PIX_BAYERRG12PACKED, "GVSP_BayerRG12Packed (GigE Vision specific format, Bayer Red-Green 12-bit packed)" },
{ GVSP_PIX_BAYERGB12PACKED, "GVSP_BayerGB12Packed (GigE Vision specific format, Bayer Green-Blue 12-bit packed)" },
{ GVSP_PIX_BAYERBG12PACKED, "GVSP_BayerBG12Packed (GigE Vision specific format, Bayer Blue-Green 12-bit packed)" },
{ GVSP_PIX_MONO12P, "Mono12p (Monochrome 12-bit packed)" },
{ GVSP_PIX_BAYERBG12P, "BayerBG12p (Bayer Blue-Green 12-bit packed)" },
{ GVSP_PIX_BAYERGB12P, "BayerGB12p (Bayer Green-Blue 12-bit packed)" },
{ GVSP_PIX_BAYERGR12P, "BayerGR12p (Bayer Green-Red 12-bit packed)" },
{ GVSP_PIX_BAYERRG12P, "BayerRG12p (Bayer Red-Green 12-bit packed)" },
{ GVSP_PIX_SCF1WBWG12P, "SCF1WBWG12p (Sparse Color Filter #1 White-Blue-White-Green 12-bit packed)" },
{ GVSP_PIX_SCF1WGWB12P, "SCF1WGWB12p (Sparse Color Filter #1 White-Green-White-Blue 12-bit packed)" },
{ GVSP_PIX_SCF1WGWR12P, "SCF1WGWR12p (Sparse Color Filter #1 White-Green-White-Red 12-bit packed)" },
{ GVSP_PIX_SCF1WRWG12P, "SCF1WRWG12p (Sparse Color Filter #1 White-Red-White-Green 12-bit packed)" },
{ GVSP_PIX_R12_DEPRECATED, "R12_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_G12_DEPRECATED, "G12_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_B12_DEPRECATED, "B12_Deprecated (Deprecated because size field is wrong)" },
{ GVSP_PIX_COORD3D_A12P, "Coord3D_A12p (3D coordinate A 12-bit packed)" },
{ GVSP_PIX_COORD3D_B12P, "Coord3D_B12p (3D coordinate B 12-bit packed)" },
{ GVSP_PIX_COORD3D_C12P, "Coord3D_C12p (3D coordinate C 12-bit packed)" },
{ GVSP_PIX_MONO14P, "Mono14p (Monochrome 14-bit packed)" },
{ GVSP_PIX_BAYERGR14P, "BayerGR14p (Bayer Green-Red 14-bit packed)" },
{ GVSP_PIX_BAYERRG14P, "BayerRG14p (Bayer Red-Green 14-bit packed)" },
{ GVSP_PIX_BAYERGB14P, "BayerGB14p (Bayer Green-Blue 14-bit packed)" },
{ GVSP_PIX_BAYERBG14P, "BayerBG14p (Bayer Blue-Green 14-bit packed)" },
{ GVSP_PIX_MONO10, "Mono10 (Monochrome 10-bit unpacked)" },
{ GVSP_PIX_MONO12, "Mono12 (Monochrome 12-bit unpacked)" },
{ GVSP_PIX_MONO16, "Mono16 (Monochrome 16-bit)" },
{ GVSP_PIX_BAYERGR10, "BayerGR10 (Bayer Green-Red 10-bit unpacked)" },
{ GVSP_PIX_BAYERRG10, "BayerRG10 (Bayer Red-Green 10-bit unpacked)" },
{ GVSP_PIX_BAYERGB10, "BayerGB10 (Bayer Green-Blue 10-bit unpacked)" },
{ GVSP_PIX_BAYERBG10, "BayerBG10 (Bayer Blue-Green 10-bit unpacked)" },
{ GVSP_PIX_BAYERGR12, "BayerGR12 (Bayer Green-Red 12-bit unpacked)" },
{ GVSP_PIX_BAYERRG12, "BayerRG12 (Bayer Red-Green 12-bit unpacked)" },
{ GVSP_PIX_BAYERGB12, "BayerGB12 (Bayer Green-Blue 12-bit unpacked)" },
{ GVSP_PIX_BAYERBG12, "BayerBG12 (Bayer Blue-Green 12-bit unpacked)" },
{ GVSP_PIX_MONO14, "Mono14 (Monochrome 14-bit unpacked)" },
{ GVSP_PIX_BAYERGR16, "BayerGR16 (Bayer Green-Red 16-bit)" },
{ GVSP_PIX_BAYERRG16, "BayerRG16 (Bayer Red-Green 16-bit)" },
{ GVSP_PIX_BAYERGB16, "BayerGB16 (Bayer Green-Blue 16-bit)" },
{ GVSP_PIX_BAYERBG16, "BayerBG16 (Bayer Blue-Green 16-bit)" },
{ GVSP_PIX_SCF1WBWG10, "SCF1WBWG10 (Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked)" },
{ GVSP_PIX_SCF1WBWG12, "SCF1WBWG12 (Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked)" },
{ GVSP_PIX_SCF1WBWG14, "SCF1WBWG14 (Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked)" },
{ GVSP_PIX_SCF1WBWG16, "SCF1WBWG16 (Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked)" },
{ GVSP_PIX_SCF1WGWB10, "SCF1WGWB10 (Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked)" },
{ GVSP_PIX_SCF1WGWB12, "SCF1WGWB12 (Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked)" },
{ GVSP_PIX_SCF1WGWB14, "SCF1WGWB14 (Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked)" },
{ GVSP_PIX_SCF1WGWB16, "SCF1WGWB16 (Sparse Color Filter #1 White-Green-White-Blue 16-bit)" },
{ GVSP_PIX_SCF1WGWR10, "SCF1WGWR10 (Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked)" },
{ GVSP_PIX_SCF1WGWR12, "SCF1WGWR12 (Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked)" },
{ GVSP_PIX_SCF1WGWR14, "SCF1WGWR14 (Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked)" },
{ GVSP_PIX_SCF1WGWR16, "SCF1WGWR16 (Sparse Color Filter #1 White-Green-White-Red 16-bit)" },
{ GVSP_PIX_SCF1WRWG10, "SCF1WRWG10 (Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked)" },
{ GVSP_PIX_SCF1WRWG12, "SCF1WRWG12 (Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked)" },
{ GVSP_PIX_SCF1WRWG14, "SCF1WRWG14 (Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked)" },
{ GVSP_PIX_SCF1WRWG16, "SCF1WRWG16 (Sparse Color Filter #1 White-Red-White-Green 16-bit)" },
{ GVSP_PIX_COORD3D_A16, "Coord3D_A16 (3D coordinate A 16-bit)" },
{ GVSP_PIX_COORD3D_B16, "Coord3D_B16 (3D coordinate B 16-bit)" },
{ GVSP_PIX_COORD3D_C16, "Coord3D_C16 (3D coordinate C 16-bit)" },
{ GVSP_PIX_CONFIDENCE16, "Confidence16 (Confidence 16-bit)" },
{ GVSP_PIX_R16, "R16 (Red 16-bit)" },
{ GVSP_PIX_G16, "G16 (Green 16-bit)" },
{ GVSP_PIX_B16, "B16 (Blue 16-bit)" },
{ GVSP_PIX_BAYERGR14, "BayerGR14 (Bayer Green-Red 14-bit)" },
{ GVSP_PIX_BAYERRG14, "BayerRG14 (Bayer Red-Green 14-bit)" },
{ GVSP_PIX_BAYERGB14, "BayerGB14 (Bayer Green-Blue 14-bit)" },
{ GVSP_PIX_BAYERBG14, "BayerBG14 (Bayer Blue-Green 14-bit)" },
{ GVSP_PIX_DATA16, "Data16 (Data 16-bit)" },
{ GVSP_PIX_DATA16S, "Data16s (Data 16-bit signed)" },
{ GVSP_PIX_R10, "R10 (Red 10-bit)" },
{ GVSP_PIX_R12, "R12 (Red 12-bit)" },
{ GVSP_PIX_G10, "G10 (Green 10-bit)" },
{ GVSP_PIX_G12, "G12 (Green 12-bit)" },
{ GVSP_PIX_B10, "B10 (Blue 10-bit)" },
{ GVSP_PIX_B12, "B12 (Blue 12-bit)" },
{ GVSP_PIX_COORD3D_A32F, "Coord3D_A32f (3D coordinate A 32-bit floating point)" },
{ GVSP_PIX_COORD3D_B32F, "Coord3D_B32f (3D coordinate B 32-bit floating point)" },
{ GVSP_PIX_COORD3D_C32F, "Coord3D_C32f (3D coordinate C 32-bit floating point)" },
{ GVSP_PIX_CONFIDENCE32F, "Confidence32f (Confidence 32-bit floating point)" },
{ GVSP_PIX_MONO32, "Mono32 (Monochrome 32-bit)" },
{ GVSP_PIX_DATA32, "Data32 (Data 32-bit)" },
{ GVSP_PIX_DATA32S, "Data32s (Data 32-bit signed)" },
{ GVSP_PIX_DATA32F, "Data32f (Data 32-bit floating point)" },
{ GVSP_PIX_DATA64, "Data64 (Data 64-bit)" },
{ GVSP_PIX_DATA64S, "Data64s (Data 64-bit signed)" },
{ GVSP_PIX_DATA64F, "Data64f (Data 64-bit floating point)" },
{ GVSP_PIX_YUV411_8_UYYVYY, "YUV411_8_UYYVYY (YUV 4:1:1 8-bit)" },
{ GVSP_PIX_YCBCR411_8_CBYYCRYY, "YCbCr411_8_CbYYCrYY (YCbCr 4:1:1 8-bit)" },
{ GVSP_PIX_YCBCR601_411_8_CBYYCRYY, "YCbCr601_411_8_CbYYCrYY (YCbCr 4:1:1 8-bit BT.601)" },
{ GVSP_PIX_YCBCR709_411_8_CBYYCRYY, "YCbCr709_411_8_CbYYCrYY (YCbCr 4:1:1 8-bit BT.709)" },
{ GVSP_PIX_YCBCR411_8, "YCbCr411_8 (YCbCr 4:1:1 8-bit)" },
{ GVSP_PIX_YCBCR2020_411_8_CBYYCRYY, "YCbCr2020_411_8_CbYYCrYY (YCbCr 4:1:1 8-bit BT.2020)" },
{ GVSP_PIX_YCBCR420_8_YY_CBCR_SEMIPLANAR, "YCbCr420_8_YY_CbCr_Semiplanar (YCbCr 4:2:0 8-bit YY/CbCr Semiplanar)" },
{ GVSP_PIX_YCBCR420_8_YY_CRCB_SEMIPLANAR, "YCbCr420_8_YY_CrCb_Semiplanar (YCbCr 4:2:0 8-bit YY/CrCb Semiplanar)" },
{ GVSP_PIX_YUV422_8_UYVY, "YUV422_8_UYVY (YUV 4:2:2 8-bit)" },
{ GVSP_PIX_YUV422_8, "YUV422_8 (YUV 4:2:2 8-bit)" },
{ GVSP_PIX_RGB565P, "RGB565p (Red-Green-Blue 5/6/5-bit packed)" },
{ GVSP_PIX_BGR565P, "BGR565p (Blue-Green-Red 5/6/5-bit packed)" },
{ GVSP_PIX_YCBCR422_8, "YCbCr422_8 (YCbCr 4:2:2 8-bit)" },
{ GVSP_PIX_YCBCR601_422_8, "YCbCr601_422_8 (YCbCr 4:2:2 8-bit BT.601)" },
{ GVSP_PIX_YCBCR709_422_8, "YCbCr709_422_8 (YCbCr 4:2:2 8-bit BT.709)" },
{ GVSP_PIX_YCBCR422_8_CBYCRY, "YCbCr422_8_CbYCrY (YCbCr 4:2:2 8-bit)" },
{ GVSP_PIX_YCBCR601_422_8_CBYCRY, "YCbCr601_422_8_CbYCrY (YCbCr 4:2:2 8-bit BT.601)" },
{ GVSP_PIX_YCBCR709_422_8_CBYCRY, "YCbCr709_422_8_CbYCrY (YCbCr 4:2:2 8-bit BT.709)" },
{ GVSP_PIX_BICOLORRGBG8, "BiColorRGBG8 (Bi-color Red/Green - Blue/Green 8-bit)" },
{ GVSP_PIX_BICOLORBGRG8, "BiColorBGRG8 (Bi-color Blue/Green - Red/Green 8-bit)" },
{ GVSP_PIX_COORD3D_AC8, "Coord3D_AC8 (3D coordinate A-C 8-bit)" },
{ GVSP_PIX_COORD3D_AC8_PLANAR, "Coord3D_AC8_Planar (3D coordinate A-C 8-bit planar)" },
{ GVSP_PIX_YCBCR2020_422_8, "YCbCr2020_422_8 (YCbCr 4:2:2 8-bit BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_8_CBYCRY, "YCbCr2020_422_8_CbYCrY (YCbCr 4:2:2 8-bit BT.2020)" },
{ GVSP_PIX_YCBCR422_8_YY_CBCR_SEMIPLANAR, "YCbCr422_8_YY_CbCr_Semiplanar (YCbCr 4:2:2 8-bit YY/CbCr Semiplanar)" },
{ GVSP_PIX_YCBCR422_8_YY_CRCB_SEMIPLANAR, "YCbCr422_8_YY_CrCb_Semiplanar (YCbCr 4:2:2 8-bit YY/CrCb Semiplanar)" },
{ GVSP_PIX_YCBCR422_10P, "YCbCr422_10p (YCbCr 4:2:2 10-bit packed)" },
{ GVSP_PIX_YCBCR601_422_10P, "YCbCr601_422_10p (YCbCr 4:2:2 10-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_422_10P, "YCbCr709_422_10p (YCbCr 4:2:2 10-bit packed BT.709)" },
{ GVSP_PIX_YCBCR422_10P_CBYCRY, "YCbCr422_10p_CbYCrY (YCbCr 4:2:2 10-bit packed)" },
{ GVSP_PIX_YCBCR601_422_10P_CBYCRY, "YCbCr601_422_10p_CbYCrY (YCbCr 4:2:2 10-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_422_10P_CBYCRY, "YCbCr709_422_10p_CbYCrY (YCbCr 4:2:2 10-bit packed BT.709)" },
{ GVSP_PIX_BICOLORRGBG10P, "BiColorRGBG10p (Bi-color Red/Green - Blue/Green 10-bit packed)" },
{ GVSP_PIX_BICOLORBGRG10P, "BiColorBGRG10p (Bi-color Blue/Green - Red/Green 10-bit packed)" },
{ GVSP_PIX_COORD3D_AC10P, "Coord3D_AC10p (3D coordinate A-C 10-bit packed)" },
{ GVSP_PIX_COORD3D_AC10P_PLANAR, "Coord3D_AC10p_Planar (3D coordinate A-C 10-bit packed planar)" },
{ GVSP_PIX_YCBCR2020_422_10P, "YCbCr2020_422_10p (YCbCr 4:2:2 10-bit packed BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_10P_CBYCRY, "YCbCr2020_422_10p_CbYCrY (YCbCr 4:2:2 10-bit packed BT.2020)" },
{ GVSP_PIX_RGB8, "RGB8 (Red-Green-Blue 8-bit)" },
{ GVSP_PIX_BGR8, "BGR8 (Blue-Green-Red 8-bit)" },
{ GVSP_PIX_YUV8_UYV, "YUV8_UYV (YUV 4:4:4 8-bit)" },
{ GVSP_PIX_RGB8_PLANAR, "RGB8_Planar (Red-Green-Blue 8-bit planar)" },
{ GVSP_PIX_YCBCR8_CBYCR, "YCbCr8_CbYCr (YCbCr 4:4:4 8-bit)" },
{ GVSP_PIX_YCBCR601_8_CBYCR, "YCbCr601_8_CbYCr (YCbCr 4:4:4 8-bit BT.601)" },
{ GVSP_PIX_YCBCR709_8_CBYCR, "YCbCr709_8_CbYCr (YCbCr 4:4:4 8-bit BT.709)" },
{ GVSP_PIX_YCBCR8, "YCbCr8 (YCbCr 4:4:4 8-bit)" },
{ GVSP_PIX_YCBCR422_12P, "YCbCr422_12p (YCbCr 4:2:2 12-bit packed)" },
{ GVSP_PIX_YCBCR601_422_12P, "YCbCr601_422_12p (YCbCr 4:2:2 12-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_422_12P, "YCbCr709_422_12p (YCbCr 4:2:2 12-bit packed BT.709)" },
{ GVSP_PIX_YCBCR422_12P_CBYCRY, "YCbCr422_12p_CbYCrY (YCbCr 4:2:2 12-bit packed)" },
{ GVSP_PIX_YCBCR601_422_12P_CBYCRY, "YCbCr601_422_12p_CbYCrY (YCbCr 4:2:2 12-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_422_12P_CBYCRY, "YCbCr709_422_12p_CbYCrY (YCbCr 4:2:2 12-bit packed BT.709)" },
{ GVSP_PIX_BICOLORRGBG12P, "BiColorRGBG12p (Bi-color Red/Green - Blue/Green 12-bit packed)" },
{ GVSP_PIX_BICOLORBGRG12P, "BiColorBGRG12p (Bi-color Blue/Green - Red/Green 12-bit packed)" },
{ GVSP_PIX_COORD3D_ABC8, "Coord3D_ABC8 (3D coordinate A-B-C 8-bit)" },
{ GVSP_PIX_COORD3D_ABC8_PLANAR, "Coord3D_ABC8_Planar (3D coordinate A-B-C 8-bit planar)" },
{ GVSP_PIX_COORD3D_AC12P, "Coord3D_AC12p (3D coordinate A-C 12-bit packed)" },
{ GVSP_PIX_COORD3D_AC12P_PLANAR, "Coord3D_AC12p_Planar (3D coordinate A-C 12-bit packed planar)" },
{ GVSP_PIX_YCBCR2020_8_CBYCR, "YCbCr2020_8_CbYCr (YCbCr 4:4:4 8-bit BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_12P, "YCbCr2020_422_12p (YCbCr 4:2:2 12-bit packed BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_12P_CBYCRY, "YCbCr2020_422_12p_CbYCrY (YCbCr 4:2:2 12-bit packed BT.2020)" },
{ GVSP_PIX_BGR10P, "BGR10p (Blue-Green-Red 10-bit packed)" },
{ GVSP_PIX_RGB10P, "RGB10p (Red-Green-Blue 10-bit packed)" },
{ GVSP_PIX_YCBCR10P_CBYCR, "YCbCr10p_CbYCr (YCbCr 4:4:4 10-bit packed)" },
{ GVSP_PIX_YCBCR601_10P_CBYCR, "YCbCr601_10p_CbYCr (YCbCr 4:4:4 10-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_10P_CBYCR, "YCbCr709_10p_CbYCr (YCbCr 4:4:4 10-bit packed BT.709)" },
{ GVSP_PIX_COORD3D_ABC10P, "Coord3D_ABC10p (3D coordinate A-B-C 10-bit packed)" },
{ GVSP_PIX_COORD3D_ABC10P_PLANAR, "Coord3D_ABC10p_Planar (3D coordinate A-B-C 10-bit packed planar)" },
{ GVSP_PIX_YCBCR2020_10P_CBYCR, "YCbCr2020_10p_CbYCr (YCbCr 4:4:4 10-bit packed BT.2020)" },
{ GVSP_PIX_RGBA8, "RGBa8 (Red-Green-Blue-alpha 8-bit)" },
{ GVSP_PIX_BGRA8, "BGRa8 (Blue-Green-Red-alpha 8-bit)" },
{ GVSP_PIX_RGB10V1PACKED, "GVSP_RGB10V1Packed (GigE Vision specific format, Red-Green-Blue 10-bit packed - variant 1)" },
{ GVSP_PIX_RGB10P32, "RGB10p32 (Red-Green-Blue 10-bit packed into 32-bit)" },
{ GVSP_PIX_YCBCR422_10, "YCbCr422_10 (YCbCr 4:2:2 10-bit unpacked)" },
{ GVSP_PIX_YCBCR422_12, "YCbCr422_12 (YCbCr 4:2:2 12-bit unpacked)" },
{ GVSP_PIX_YCBCR601_422_10, "YCbCr601_422_10 (YCbCr 4:2:2 10-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR601_422_12, "YCbCr601_422_12 (YCbCr 4:2:2 12-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR709_422_10, "YCbCr709_422_10 (YCbCr 4:2:2 10-bit unpacked BT.709)" },
{ GVSP_PIX_YCBCR709_422_12, "YCbCr709_422_12 (YCbCr 4:2:2 12-bit unpacked BT.709)" },
{ GVSP_PIX_YCBCR422_10_CBYCRY, "YCbCr422_10_CbYCrY (YCbCr 4:2:2 10-bit unpacked)" },
{ GVSP_PIX_YCBCR422_12_CBYCRY, "YCbCr422_12_CbYCrY (YCbCr 4:2:2 12-bit unpacked)" },
{ GVSP_PIX_YCBCR601_422_10_CBYCRY, "YCbCr601_422_10_CbYCrY (YCbCr 4:2:2 10-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR601_422_12_CBYCRY, "YCbCr601_422_12_CbYCrY (YCbCr 4:2:2 12-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR709_422_10_CBYCRY, "YCbCr709_422_10_CbYCrY (YCbCr 4:2:2 10-bit unpacked BT.709)" },
{ GVSP_PIX_YCBCR709_422_12_CBYCRY, "YCbCr709_422_12_CbYCrY (YCbCr 4:2:2 12-bit unpacked BT.709)" },
{ GVSP_PIX_BICOLORRGBG10, "BiColorRGBG10 (Bi-color Red/Green - Blue/Green 10-bit unpacked)" },
{ GVSP_PIX_BICOLORBGRG10, "BiColorBGRG10 (Bi-color Blue/Green - Red/Green 10-bit unpacked)" },
{ GVSP_PIX_BICOLORRGBG12, "BiColorRGBG12 (Bi-color Red/Green - Blue/Green 12-bit unpacked)" },
{ GVSP_PIX_BICOLORBGRG12, "BiColorBGRG12 (Bi-color Blue/Green - Red/Green 12-bit unpacked)" },
{ GVSP_PIX_COORD3D_AC16, "Coord3D_AC16 (3D coordinate A-C 16-bit)" },
{ GVSP_PIX_COORD3D_AC16_PLANAR, "Coord3D_AC16_Planar (3D coordinate A-C 16-bit planar)" },
{ GVSP_PIX_YCBCR2020_422_10, "YCbCr2020_422_10 (YCbCr 4:2:2 10-bit unpacked BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_10_CBYCRY, "YCbCr2020_422_10_CbYCrY (YCbCr 4:2:2 10-bit unpacked BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_12, "YCbCr2020_422_12 (YCbCr 4:2:2 12-bit unpacked BT.2020)" },
{ GVSP_PIX_YCBCR2020_422_12_CBYCRY, "YCbCr2020_422_12_CbYCrY (YCbCr 4:2:2 12-bit unpacked BT.2020)" },
{ GVSP_PIX_RGB12V1PACKED, "GVSP_RGB12V1Packed (GigE Vision specific format, Red-Green-Blue 12-bit packed - variant 1)" },
{ GVSP_PIX_BGR12P, "BGR12p (Blue-Green-Red 12-bit packed)" },
{ GVSP_PIX_RGB12P, "RGB12p (Red-Green-Blue 12-bit packed)" },
{ GVSP_PIX_YCBCR12P_CBYCR, "YCbCr12p_CbYCr (YCbCr 4:4:4 12-bit packed)" },
{ GVSP_PIX_YCBCR601_12P_CBYCR, "YCbCr601_12p_CbYCr (YCbCr 4:4:4 12-bit packed BT.601)" },
{ GVSP_PIX_YCBCR709_12P_CBYCR, "YCbCr709_12p_CbYCr (YCbCr 4:4:4 12-bit packed BT.709)" },
{ GVSP_PIX_COORD3D_ABC12P, "Coord3D_ABC12p (3D coordinate A-B-C 12-bit packed)" },
{ GVSP_PIX_COORD3D_ABC12P_PLANAR, "Coord3D_ABC12p_Planar (3D coordinate A-B-C 12-bit packed planar)" },
{ GVSP_PIX_YCBCR2020_12P_CBYCR, "YCbCr2020_12p_CbYCr (YCbCr 4:4:4 12-bit packed BT.2020)" },
{ GVSP_PIX_BGRA10P, "BGRa10p (Blue-Green-Red-alpha 10-bit packed)" },
{ GVSP_PIX_RGBA10P, "RGBa10p (Red-Green-Blue-alpha 10-bit packed)" },
{ GVSP_PIX_RGB10, "RGB10 (Red-Green-Blue 10-bit unpacked)" },
{ GVSP_PIX_BGR10, "BGR10 (Blue-Green-Red 10-bit unpacked)" },
{ GVSP_PIX_RGB12, "RGB12 (Red-Green-Blue 12-bit unpacked)" },
{ GVSP_PIX_BGR12, "BGR12 (Blue-Green-Red 12-bit unpacked)" },
{ GVSP_PIX_RGB10_PLANAR, "RGB10_Planar (Red-Green-Blue 10-bit unpacked planar)" },
{ GVSP_PIX_RGB12_PLANAR, "RGB12_Planar (Red-Green-Blue 12-bit unpacked planar)" },
{ GVSP_PIX_RGB16_PLANAR, "RGB16_Planar (Red-Green-Blue 16-bit planar)" },
{ GVSP_PIX_RGB16, "RGB16 (Red-Green-Blue 16-bit)" },
{ GVSP_PIX_BGR14, "BGR14 (Blue-Green-Red 14-bit unpacked)" },
{ GVSP_PIX_BGR16, "BGR16 (Blue-Green-Red 16-bit)" },
{ GVSP_PIX_BGRA12P, "BGRa12p (Blue-Green-Red-alpha 12-bit packed)" },
{ GVSP_PIX_RGB14, "RGB14 (Red-Green-Blue 14-bit unpacked)" },
{ GVSP_PIX_RGBA12P, "RGBa12p (Red-Green-Blue-alpha 12-bit packed)" },
{ GVSP_PIX_YCBCR10_CBYCR, "YCbCr10_CbYCr (YCbCr 4:4:4 10-bit unpacked)" },
{ GVSP_PIX_YCBCR12_CBYCR, "YCbCr12_CbYCr (YCbCr 4:4:4 12-bit unpacked)" },
{ GVSP_PIX_YCBCR601_10_CBYCR, "YCbCr601_10_CbYCr (YCbCr 4:4:4 10-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR601_12_CBYCR, "YCbCr601_12_CbYCr (YCbCr 4:4:4 12-bit unpacked BT.601)" },
{ GVSP_PIX_YCBCR709_10_CBYCR, "YCbCr709_10_CbYCr (YCbCr 4:4:4 10-bit unpacked BT.709)" },
{ GVSP_PIX_YCBCR709_12_CBYCR, "YCbCr709_12_CbYCr (YCbCr 4:4:4 12-bit unpacked BT.709)" },
{ GVSP_PIX_COORD3D_ABC16, "Coord3D_ABC16 (3D coordinate A-B-C 16-bit)" },
{ GVSP_PIX_COORD3D_ABC16_PLANAR, "Coord3D_ABC16_Planar (3D coordinate A-B-C 16-bit planar)" },
{ GVSP_PIX_YCBCR2020_10_CBYCR, "YCbCr2020_10_CbYCr (YCbCr 4:4:4 10-bit unpacked BT.2020)" },
{ GVSP_PIX_YCBCR2020_12_CBYCR, "YCbCr2020_12_CbYCr (YCbCr 4:4:4 12-bit unpacked BT.2020)" },
{ GVSP_PIX_BGRA10, "BGRa10 (Blue-Green-Red-alpha 10-bit unpacked)" },
{ GVSP_PIX_BGRA12, "BGRa12 (Blue-Green-Red-alpha 12-bit unpacked)" },
{ GVSP_PIX_BGRA14, "BGRa14 (Blue-Green-Red-alpha 14-bit unpacked)" },
{ GVSP_PIX_BGRA16, "BGRa16 (Blue-Green-Red-alpha 16-bit)" },
{ GVSP_PIX_RGBA10, "RGBa10 (Red-Green-Blue-alpha 10-bit unpacked)" },
{ GVSP_PIX_RGBA12, "RGBa12 (Red-Green-Blue-alpha 12-bit unpacked)" },
{ GVSP_PIX_RGBA14, "RGBa14 (Red-Green-Blue-alpha 14-bit unpacked)" },
{ GVSP_PIX_RGBA16, "RGBa16 (Red-Green-Blue-alpha 16-bit)" },
{ GVSP_PIX_COORD3D_AC32F, "Coord3D_AC32f (3D coordinate A-C 32-bit floating point)" },
{ GVSP_PIX_COORD3D_AC32F_PLANAR, "Coord3D_AC32f_Planar (3D coordinate A-C 32-bit floating point planar)" },
{ GVSP_PIX_COORD3D_ABC32F, "Coord3D_ABC32f (3D coordinate A-B-C 32-bit floating point)" },
{ GVSP_PIX_COORD3D_ABC32F_PLANAR, "Coord3D_ABC32f_Planar (3D coordinate A-B-C 32-bit floating point planar)" },
{ 0, NULL }
};
static value_string_ext pixeltypenames_ext = VALUE_STRING_EXT_INIT(pixeltypenames);
static const value_string colornames[] = {
{ GVSP_PIX_MONO >> 24, "Mono" },
{ GVSP_PIX_COLOR >> 24, "Color" },
{ GVSP_PIX_CUSTOM >> 24, "Custom" },
{ 0, NULL }
};
static const true_false_string zonedirectionnames = {
"Bottom Up",
"Top-Down"
};
/* GEV 2.2 */
static const value_string gendc_payload_descriptor_flag_values[] = {
{ 0, "No Descriptor Data" },
{ 1, "Final Descriptor Data" },
{ 2, "Final Descriptor Data With Non-Descriptor Data" },
{ 3, "Preliminary Descriptor Data" },
{ 0, NULL }
};
/* GEV 2.2 */
static const value_string gendc_header_type_values[] = {
{ GENDC_HEADER_TYPE_CONTAINER , "Container" },
{ GENDC_HEADER_TYPE_COMPONENT_HEADER , "Component Header" },
{ GENDC_HEADER_TYPE_PART_CHUNK, "Chunk" },
{ GENDC_HEADER_TYPE_PART_XML, "GenICam XML" },
{ GENDC_HEADER_TYPE_PART_1D, "1D Array" },
{ GENDC_HEADER_TYPE_PART_2D, "2D Array" },
{ GENDC_HEADER_TYPE_PART_2D_JPEG, "JPEG Image" },
{ GENDC_HEADER_TYPE_PART_2D_JPEG2000, "JPEG 2000 Image" },
{ GENDC_HEADER_TYPE_PART_2D_H264, "H.264 Image" },
{ 0, NULL }
};
/* GEV 2.2 */
static const val64_string gendc_component_typeid_values[] = {
{ GENDC_COMPONENT_TYPEID_UNDEFINED , "Undefined" },
{ GENDC_COMPONENT_TYPEID_INTENSITY , "Intensity" },
{ GENDC_COMPONENT_TYPEID_INFRARED , "Infrared" },
{ GENDC_COMPONENT_TYPEID_ULTRAVIOLET , "Ultraviolet" },
{ GENDC_COMPONENT_TYPEID_RANGE , "Range" },
{ GENDC_COMPONENT_TYPEID_REFLECTANCE , "Reflectance" },
{ GENDC_COMPONENT_TYPEID_CONFIDENCE , "Confidence" },
{ GENDC_COMPONENT_TYPEID_SCATTER , "Scatter" },
{ GENDC_COMPONENT_TYPEID_DISPARITY , "Disparity" },
{ GENDC_COMPONENT_TYPEID_MULTISPECTRAL , "Multispectral" },
{ GENDC_COMPONENT_TYPEID_METADATA , "Metadata" },
{ GENDC_COMPONENT_TYPEID_RESERVED , "Reserved" },
{ 0, NULL }
};
static int hf_gvsp_status;
static int hf_gvsp_blockid16;
static int hf_gvsp_flags;
static int hf_gvsp_flagdevicespecific0;
static int hf_gvsp_flagdevicespecific1;
static int hf_gvsp_flagdevicespecific2;
static int hf_gvsp_flagdevicespecific3;
static int hf_gvsp_flagdevicespecific4;
static int hf_gvsp_flagdevicespecific5;
static int hf_gvsp_flagdevicespecific6;
static int hf_gvsp_flagdevicespecific7;
static int hf_gvsp_flagresendrangeerror;
static int hf_gvsp_flagpreviousblockdropped;
static int hf_gvsp_flagpacketresend;
static int hf_gvsp_format;
static int hf_gvsp_packetid24;
static int hf_gvsp_blockid64;
static int hf_gvsp_packetid32;
static int hf_gvsp_payloadtype;
static int hf_gvsp_payloaddata;
static int hf_gvsp_timestamp;
static int hf_gvsp_pixelformat;
static int hf_gvsp_sizex;
static int hf_gvsp_sizey;
static int hf_gvsp_offsetx;
static int hf_gvsp_offsety;
static int hf_gvsp_paddingx;
static int hf_gvsp_paddingy;
static int hf_gvsp_payloaddatasize;
static int hf_gvsp_pixelcolor;
static int hf_gvsp_pixeloccupy;
static int hf_gvsp_pixelid;
static int hf_gvsp_filename;
static int hf_gvsp_payloadlength;
static int hf_gvsp_fieldinfo;
static int hf_gvsp_fieldid;
static int hf_gvsp_fieldcount;
static int hf_gvsp_genericflags;
static int hf_gvsp_timestamptickfrequency;
static int hf_gvsp_dataformat;
static int hf_gvsp_packetizationmode;
static int hf_gvsp_packetsize;
static int hf_gvsp_profileidc;
static int hf_gvsp_cs;
static int hf_gvsp_cs0;
static int hf_gvsp_cs1;
static int hf_gvsp_cs2;
static int hf_gvsp_cs3;
static int hf_gvsp_levelidc;
static int hf_gvsp_sropinterleavingdepth;
static int hf_gvsp_sropmaxdondiff;
static int hf_gvsp_sropdeintbufreq;
static int hf_gvsp_sropinitbuftime;
static int hf_gvsp_add_zones;
static int hf_gvsp_zoneinfo;
static int hf_gvsp_zoneid;
static int hf_gvsp_endofzone;
static int hf_gvsp_addressoffset;
static int hf_gvsp_sc_zone_direction;
static int hf_gvsp_sc_zone0_direction;
static int hf_gvsp_sc_zone1_direction;
static int hf_gvsp_sc_zone2_direction;
static int hf_gvsp_sc_zone3_direction;
static int hf_gvsp_sc_zone4_direction;
static int hf_gvsp_sc_zone5_direction;
static int hf_gvsp_sc_zone6_direction;
static int hf_gvsp_sc_zone7_direction;
static int hf_gvsp_sc_zone8_direction;
static int hf_gvsp_sc_zone9_direction;
static int hf_gvsp_sc_zone10_direction;