AJA NTV2 SDK  18.1.0.2439
NTV2 SDK 18.1.0.2439
ntv2debug.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
9 #include "ntv2publicinterface.h"
10 #include "ntv2debug.h"
11 
12 // Macro to simplify returning of strings for given enum
13 #define NTV2DEBUG_ENUM_CASE_RETURN_STR(enum_name) case(enum_name): return #enum_name;
14 
15 const char * NTV2DeviceIDString (const NTV2DeviceID id)
16 {
17  switch (id)
18  {
98  }
99  return "";
100 } // NTV2DeviceIDString
101 
102 
103 const char * NTV2DeviceString (const NTV2DeviceID id)
104 {
105  switch (id)
106  {
107  case DEVICE_ID_CORVID1: return "Corvid1";
108  case DEVICE_ID_CORVID22: return "Corvid22";
109  case DEVICE_ID_CORVID24: return "Corvid24";
110  case DEVICE_ID_CORVID3G: return "Corvid3G";
111  case DEVICE_ID_CORVID44_2X4K: return "Corvid44_2X4K";
112  case DEVICE_ID_CORVID44_8K: return "Corvid44_8K";
113  case DEVICE_ID_CORVID44_8KMK: return "Corvid44_8KMK";
114  case DEVICE_ID_CORVID44_PLNR: return "Corvid44_PLNR";
115  case DEVICE_ID_CORVID44: return "Corvid44";
116  case DEVICE_ID_CORVID44_GEN3: return "Corvid44Gen3";
117  case DEVICE_ID_CORVID88: return "Corvid88";
118  case DEVICE_ID_CORVID88_GEN3: return "Corvid88Gen3";
119  case DEVICE_ID_CORVIDHBR: return "CorvidHBR";
120  case DEVICE_ID_CORVIDHEVC: return "CorvidHEVC";
121  case DEVICE_ID_IO4K: return "Io4K";
122  case DEVICE_ID_IO4KPLUS: return "DNxIV";
123  case DEVICE_ID_IO4KUFC: return "Io4KUfc";
124  case DEVICE_ID_IOEXPRESS: return "IoExpress";
125  case DEVICE_ID_IOIP_2022: return "DNxIP_2022";
126  case DEVICE_ID_IOIP_2110: return "DNxIP_2110";
127  case DEVICE_ID_IOIP_2110_RGB12: return "DNxIP_2110_RGB12";
128  case DEVICE_ID_IOX3: return "IoX3";
129  case DEVICE_ID_IOXT: return "IoXT";
130  case DEVICE_ID_KONA1: return "Kona1";
131  case DEVICE_ID_KONA3G: return "Kona3G";
132  case DEVICE_ID_KONA3GQUAD: return "Kona3GQuad";
133  case DEVICE_ID_KONA4: return "Kona4";
134  case DEVICE_ID_KONA4UFC: return "Kona4Ufc";
135  case DEVICE_ID_KONA5_2X4K: return "Kona5_12Bit";
136  case DEVICE_ID_KONA5_3DLUT: return "Kona5_3DLUT";
137  case DEVICE_ID_KONA5_8K: return "Kona5_8K";
138  case DEVICE_ID_KONA5_8KMK: return "Kona5_8KMK";
139  case DEVICE_ID_KONA5_8K_MV_TX: return "Kona5_8K_MV_TX";
140  case DEVICE_ID_KONA5_OE1: return "Kona5_OE1";
141  case DEVICE_ID_KONA5_OE2: return "Kona5_OE2";
142  case DEVICE_ID_KONA5_OE3: return "Kona5_OE3";
143  case DEVICE_ID_KONA5_OE4: return "Kona5_OE4";
144  case DEVICE_ID_KONA5_OE5: return "Kona5_OE5";
145  case DEVICE_ID_KONA5_OE6: return "Kona5_OE6";
146  case DEVICE_ID_KONA5_OE7: return "Kona5_OE7";
147  case DEVICE_ID_KONA5_OE8: return "Kona5_OE8";
148  case DEVICE_ID_KONA5_OE9: return "Kona5_OE9";
149  case DEVICE_ID_KONA5_OE10: return "Kona5_OE10";
150  case DEVICE_ID_KONA5_OE11: return "Kona5_OE11";
151  case DEVICE_ID_KONA5_OE12: return "Kona5_OE12";
152  case DEVICE_ID_KONA5: return "Kona5";
153  case DEVICE_ID_KONAHDMI: return "KonaHDMI";
154  case DEVICE_ID_KONAIP_1RX_1TX_1SFP_J2K: return "KonaIP_1Rx1Tx1SFPJ2K";
155  case DEVICE_ID_KONAIP_1RX_1TX_2110: return "KonaIP_1Rx1Tx2110";
156  case DEVICE_ID_KONAIP_2022: return "KonaIP_2022";
157  case DEVICE_ID_KONAIP_2110: return "KonaIP_2110";
158  case DEVICE_ID_KONAIP_2110_RGB12: return "KonaIP_2110_RGB12";
159  case DEVICE_ID_KONAIP_2TX_1SFP_J2K: return "KonaIP_2Tx1SFPJ2K";
160  case DEVICE_ID_KONAIP_4CH_2SFP: return "KonaIP_4ch2SFP";
161  case DEVICE_ID_KONAIP_25G: return "KonaIP_25G";
162  case DEVICE_ID_KONAIP_25G_8CH: return "KonaIP_25G_8Ch";
163  case DEVICE_ID_KONALHEPLUS: return "KonaLHePlus";
164  case DEVICE_ID_KONALHI: return "KonaLHi";
165  case DEVICE_ID_KONALHIDVI: return "KonaLHiDVI";
166  case DEVICE_ID_KONAX: return "KonaX";
167  case DEVICE_ID_KONAXM: return "KonaXM";
168  case DEVICE_ID_KONAX_4CH: return "KonaX_4Ch";
169  case DEVICE_ID_SOFTWARE: return "Software";
170  case DEVICE_ID_SOJI_3DLUT: return "SOJI_3DLUT";
171  case DEVICE_ID_SOJI_DIAGS: return "SOJI_DIAGS";
172  case DEVICE_ID_SOJI_OE1: return "SOJI_OE1";
173  case DEVICE_ID_SOJI_OE2: return "SOJI_OE2";
174  case DEVICE_ID_SOJI_OE3: return "SOJI_OE3";
175  case DEVICE_ID_SOJI_OE4: return "SOJI_OE4";
176  case DEVICE_ID_SOJI_OE5: return "SOJI_OE5";
177  case DEVICE_ID_SOJI_OE6: return "SOJI_OE6";
178  case DEVICE_ID_SOJI_OE7: return "SOJI_OE7";
179  case DEVICE_ID_TTAP: return "TTap";
180  case DEVICE_ID_TTAP_PRO: return "TTapPro";
181  case DEVICE_ID_VKONA: return "VKona";
182  case DEVICE_ID_IP25_R: return "IP25-R";
183  case DEVICE_ID_IP25_T: return "IP25-T";
184  case DEVICE_ID_FS8: return "FS8";
185  case DEVICE_ID_NOTFOUND: return "Unknown";
186  } // switch
187  return "";
188 } // NTV2DeviceString
189 
190 
192 {
193  switch (std)
194  {
212 #if !defined (_DEBUG)
213  default: return "";
214 #endif
215  }
216  return "";
217 }
218 
219 
221 {
222  switch (fmt)
223  {
257 #if !defined (_DEBUG)
258  default: return "";
259 #endif
260  }
261  return "";
262 }
263 
264 
266 {
267  switch (geom)
268  {
290 #if !defined (_DEBUG)
291  default: return "";
292 #endif
293  }
294  return "";
295 }
296 
297 
299 {
300  switch (rate)
301  {
316 #if !defined(NTV2_DEPRECATE_16_0)
321 #endif
322  NTV2DEBUG_ENUM_CASE_RETURN_STR(NTV2_FRAMERATE_INVALID)
323  case NTV2_NUM_FRAMERATES: return ""; //special case
324 
325 #if !defined (_DEBUG)
326  default: return "";
327 #endif
328  }
329  return "";
330 }
331 
332 
334 {
335  switch (fmt)
336  {
492  //special cases
493  case NTV2_FORMAT_END_HIGH_DEF_FORMATS: return "";
494  case NTV2_FORMAT_END_STANDARD_DEF_FORMATS: return "";
495  case NTV2_FORMAT_END_2K_DEF_FORMATS: return "";
496  case NTV2_FORMAT_END_HIGH_DEF_FORMATS2: return "";
497  case NTV2_FORMAT_END_4K_TSI_DEF_FORMATS: return "";
498  case NTV2_FORMAT_END_4K_DEF_FORMATS2: return "";
499  case NTV2_FORMAT_END_UHD_TSI_DEF_FORMAT: return "";
500  case NTV2_FORMAT_END_UHD2_DEF_FORMATS: return "";
502  case NTV2_FORMAT_UNKNOWN: return "";
503 #if !defined (_DEBUG)
504  default: return "";
505 #endif
506  }
507  return "";
508 
509 } // NTV2VideoFormatString
510 
511 
512 // indexed by RegisterNum - 2048
514 {
515  "SDI 1 RX Status", // 0 2048
516  "SDI 1 RX CRC Error Count", // 1 2049
517  "SDI 1 RX Frame Count Low", // 2 2050
518  "SDI 1 RX Frame Count High", // 3 2051
519  "SDI 1 RX Frame Ref Count Low", // 4 2052
520  "SDI 1 RX Frame Ref Count High", // 5 2053
521  "Unused SDI Register 2054", // 6 2054
522  "Unused SDI Register 2055", // 7 2055
523  "SDI 2 RX Status", // 8 2056
524  "SDI 2 RX CRC Error Count", // 9 2057
525  "SDI 2 RX Frame Count Low", // 10 2058
526  "SDI 2 RX Frame Count High", // 11 2059
527  "SDI 2 RX Frame Ref Count Low", // 12 2060
528  "SDI 2 RX Frame Ref Count High", // 13 2061
529  "Unused SDI Register 2062", // 14 2062
530  "Unused SDI Register 2063", // 15 2063
531  "SDI 3 RX Status", // 16 2064
532  "SDI 3 RX CRC Error Count", // 17 2065
533  "SDI 3 RX Frame Count Low", // 18 2066
534  "SDI 3 RX Frame Count High", // 19 2067
535  "SDI 3 RX Frame Ref Count Low", // 20 2068
536  "SDI 3 RX Frame Ref Count High", // 21 2069
537  "Unused SDI Register 2070", // 22 2070
538  "Unused SDI Register 2071", // 23 2071
539  "SDI 4 RX Status", // 24 2072
540  "SDI 4 RX CRC Error Count", // 25 2073
541  "SDI 4 RX Frame Count Low", // 26 2074
542  "SDI 4 RX Frame Count High", // 27 2075
543  "SDI 4 RX Frame Ref Count Low", // 28 2076
544  "SDI 4 RX Frame Ref Count High", // 29 2077
545  "Unused SDI Register 2078", // 30 2078
546  "Unused SDI Register 2079", // 31 2079
547  "SDI 5 RX Status", // 32 2080
548  "SDI 5 RX CRC Error Count", // 33 2081
549  "SDI 5 RX Frame Count Low", // 34 2082
550  "SDI 5 RX Frame Count High", // 35 2083
551  "SDI 5 RX Frame Ref Count Low", // 36 2084
552  "SDI 5 RX Frame Ref Count High", // 37 2085
553  "Unused SDI Register 2086", // 38 2086
554  "Unused SDI Register 2087", // 39 2087
555  "SDI 6 RX Status", // 40 2088
556  "SDI 6 RX CRC Error Count", // 41 2089
557  "SDI 6 RX Frame Count Low", // 42 2090
558  "SDI 6 RX Frame Count High", // 43 2091
559  "SDI 6 RX Frame Ref Count Low", // 44 2092
560  "SDI 6 RX Frame Ref Count High", // 45 2093
561  "Unused SDI Register 2094", // 46 2094
562  "Unused SDI Register 2095", // 47 2095
563  "SDI 7 RX Status", // 48 2096
564  "SDI 7 RX CRC Error Count", // 49 2097
565  "SDI 7 RX Frame Count Low", // 50 2098
566  "SDI 7 RX Frame Count High", // 51 2099
567  "SDI 7 RX Frame Ref Count Low", // 52 2100
568  "SDI 7 RX Frame Ref Count High", // 53 2101
569  "Unused SDI Register 2102", // 54 2102
570  "Unused SDI Register 2103", // 55 2103
571  "SDI 8 RX Status", // 56 2104
572  "SDI 8 RX CRC Error Count", // 57 2105
573  "SDI 8 RX Frame Count Low", // 58 2106
574  "SDI 8 RX Frame Count High", // 59 2107
575  "SDI 8 RX Frame Ref Count Low", // 60 2108
576  "SDI 8 RX Frame Ref Count High", // 61 2109
577  "Unused SDI Register 2110", // 62 2110
578  "Unused SDI Register 2111", // 63 2111
579  "Free Running Clock Low", // 64 2112
580  "Free Running Clock High" // 65 2113
581 }; // ntv2RegStreings_SDI
582 
583 
584 // indexed by RegisterNum
585 #define REG_STR(_x_) #_x_
586 
587 const char * ntv2RegStrings[] =
588 {
590  REG_STR(kRegCh1Control), // 1
594  REG_STR(kRegCh2Control), // 5
601  REG_STR(kRegSplitControl), // 12
604  REG_STR(kRegReserved15), // 15
605  REG_STR(kRegReserved16), // 16
607  REG_STR(kRegLineCount), // 18
608  REG_STR(kRegAud1Delay), // 19
609  REG_STR(kRegVidIntControl), // 20
610  REG_STR(kRegStatus), // 21
611  REG_STR(kRegInputStatus), // 22
612  REG_STR(kRegAud1Detect), // 23
613  REG_STR(kRegAud1Control), // 24
617  REG_STR(kRegAud1Counter), // 28
621  REG_STR(kRegDMA1HostAddr), // 32
622  REG_STR(kRegDMA1LocalAddr), // 33
623  REG_STR(kRegDMA1XferCount), // 34
624  REG_STR(kRegDMA1NextDesc), // 35
625  REG_STR(kRegDMA2HostAddr), // 36
626  REG_STR(kRegDMA2LocalAddr), // 37
627  REG_STR(kRegDMA2XferCount), // 38
628  REG_STR(kRegDMA2NextDesc), // 39
629  REG_STR(kRegDMA3HostAddr), // 40
630  REG_STR(kRegDMA3LocalAddr), // 41
631  REG_STR(kRegDMA3XferCount), // 42
632  REG_STR(kRegDMA3NextDesc), // 43
633  REG_STR(kRegDMA4HostAddr), // 44
634  REG_STR(kRegDMA4LocalAddr), // 45
635  REG_STR(kRegDMA4XferCount), // 46
636  REG_STR(kRegDMA4NextDesc), // 47
637  REG_STR(kRegDMAControl), // 48
638  REG_STR(kRegDMAIntControl), // 49
639  REG_STR(kRegBoardID), // 50
640  REG_STR(kRegReserved51), // 51
641  REG_STR(kRegReserved52), // 52
642  REG_STR(kRegReserved53), // 53
643  REG_STR(kRegReserved54), // 54
644  REG_STR(kRegReserved55), // 55
645  REG_STR(kRegReserved56), // 56
646  REG_STR(kRegReserved57), // 57
649  REG_STR(kRegXenaxFlashDIN), // 60
651  REG_STR(kRegReserved62), // 62
652  REG_STR(kRegCPLDVersion), // 63
656  REG_STR(kRegCanDoStatus), // 67
659  REG_STR(kRegRS422Transmit), // 70
660  REG_STR(kRegRS422Receive), // 71
661  REG_STR(kRegRS422Control), // 72
662  REG_STR(kRegReserved73), // 73
663  REG_STR(kRegReserved74), // 74
664  REG_STR(kRegReserved75), // 75
665  REG_STR(kRegReserved76), // 76
666  REG_STR(kRegReserved77), // 77
667  REG_STR(kRegReserved78), // 78
668  REG_STR(kRegReserved79), // 79
669  REG_STR(kRegReserved80), // 80
670 
673  REG_STR(kRegReserved83), // 83
677  REG_STR(kRegAud2Delay), // 87
678  REG_STR(kRegBitfileDate), // 88
679  REG_STR(kRegBitfileTime), // 89
680 
681  REG_STR(kRegFS1I2CControl), // 90
683  REG_STR(kRegFS1I2C1Data), // 92
685  REG_STR(kRegFS1I2C2Data), // 94
691 
700 
701  REG_STR(kRegGlobalControl3), // 108
702  REG_STR(kRegReserved109), // 109
707 
708  REG_STR(kRegReserved114), // 114
709  REG_STR(kRegAudioControl2), // 115
710  REG_STR(kRegSysmonControl), // 116
712  REG_STR(kRegSysmonConfig2), // 118
714 
720  REG_STR(kRegHDMIOutControl), // 125
724  REG_STR(kRegSDIOut1Control), // 129
725 
726  REG_STR(kRegSDIOut2Control), // 130
729  REG_STR(kRegI2CWriteData), // 133
738 
744 
750 
751  REG_STR(kRegField1Line21CaptionDecode), // 152 // OBSOLETE
752  REG_STR(kRegField2Line21CaptionDecode), // 153 // OBSOLETE
753  REG_STR(kRegField1Line21CaptionEncode), // 154 // OBSOLETE
754  REG_STR(kRegField2Line21CaptionEncode), // 155 // OBSOLETE
755  REG_STR(kRegVANCGrabberSetup), // 156 // OBSOLETE
756  REG_STR(kRegVANCGrabberStatus1), // 157 // OBSOLETE
757  REG_STR(kRegVANCGrabberStatus2), // 158 // OBSOLETE
758  REG_STR(kRegVANCGrabberDataBuffer), // 159 // OBSOLETE
759  REG_STR(kRegVANCInserterSetup1), // 160 // OBSOLETE
760  REG_STR(kRegVANCInserterSetup2), // 161 // OBSOLETE
761  REG_STR(kRegVANCInserterDataBuffer), // 162 // OBSOLETE
762 
767  REG_STR(kRegAFDVANCGrabber), // 167
769  REG_STR(kRegSDIOut3Control), // 169
770  REG_STR(kRegSDIOut4Control), // 170
773  REG_STR(kRegAudioChannelMappingCh1), // 173 // OBSOLETE
775  REG_STR(kRegAudioChannelMappingCh3), // 175
776  REG_STR(kRegAudioChannelMappingCh4), // 176 // OBSOLETE
777  REG_STR(kRegAudioChannelMappingCh5), // 177 // OBSOLETE
778  REG_STR(kRegAudioChannelMappingCh6), // 178 // OBSOLETE
779  REG_STR(kRegAudioChannelMappingCh7), // 179 // OBSOLETE
780  REG_STR(kRegAudioChannelMappingCh8), // 180 // OBSOLETE
781 
782  REG_STR(kRegReserved181), // 181
783  REG_STR(kRegReserved182), // 182
784  REG_STR(kRegReserved183), // 183
785  REG_STR(kRegReserved184), // 184
786  REG_STR(kRegReserved185), // 185
787  REG_STR(kRegReserved186), // 186
788  REG_STR(kRegReserved187), // 187
789  REG_STR(kRegSDIIn1VPIDA), // 188
790  REG_STR(kRegSDIIn1VPIDB), // 189
796  REG_STR(kRegFirmwareUserID), // 195
797  REG_STR(kRegReserved196), // 196
798  REG_STR(kRegReserved197), // 197
799  REG_STR(kRegReserved198), // 198
800  REG_STR(kRegReserved199), // 199
801  REG_STR(kRegReserved200), // 200
802  REG_STR(kRegReserved201), // 201
819  REG_STR(kRegReserved218), // 218
820  REG_STR(kRegReserved219), // 219
821  REG_STR(kRegReserved220), // 220
822  REG_STR(kRegReserved221), // 221
823  REG_STR(kRegReserved222), // 222
824  REG_STR(kRegReserved223), // 223
825  REG_STR(kRegReserved224), // 224
826  REG_STR(kRegReserved225), // 225
827  REG_STR(kRegReserved226), // 226
828  REG_STR(kRegReserved227), // 227
829  REG_STR(kRegReserved228), // 228
830  REG_STR(kRegReserved229), // 229
831  REG_STR(kRegReserved230), // 230
832  REG_STR(kRegReserved231), // 231
835  REG_STR(kRegSDIOut1VPIDA), // 234
836  REG_STR(kRegSDIOut1VPIDB), // 235
837  REG_STR(kRegSDIOut2VPIDA), // 236
838  REG_STR(kRegSDIOut2VPIDB), // 237
839  REG_STR(kRegSDIIn2VPIDA), // 238
840  REG_STR(kRegSDIIn2VPIDB), // 239
841  REG_STR(kRegAud2Control), // 240
845  REG_STR(kRegRS4222Transmit), // 244
846  REG_STR(kRegRS4222Receive), // 245
847  REG_STR(kRegRS4222Control), // 246
858  REG_STR(kRegCh3Control), // 257
859  REG_STR(kRegCh3OutputFrame), // 258
860  REG_STR(kRegCh3InputFrame), // 259
861  REG_STR(kRegCh4Control), // 260
862  REG_STR(kRegCh4OutputFrame), // 261
863  REG_STR(kRegCh4InputFrame), // 262
866  REG_STR(kRegStatus2), // 265
867  REG_STR(kRegVidIntControl2), // 266
868  REG_STR(kRegGlobalControl2), // 267
869  REG_STR(kRegRP188InOut3DBB), // 268
872  REG_STR(kRegSDIOut3VPIDA), // 271
873  REG_STR(kRegSDIOut3VPIDB), // 272
874  REG_STR(kRegRP188InOut4DBB), // 273
877  REG_STR(kRegSDIOut4VPIDA), // 276
878  REG_STR(kRegSDIOut4VPIDB), // 277
879  REG_STR(kRegAud3Control), // 278
880  REG_STR(kRegAud4Control), // 279
883  REG_STR(kRegAudDetect2), // 282
889  REG_STR(kRegInputStatus2), // 288
892 
898 
904 
908 
909  REG_STR(kRegAud3Delay), // 304
910  REG_STR(kRegAud4Delay), // 305
911 
912  REG_STR(kRegSDIIn3VPIDA), // 306
913  REG_STR(kRegSDIIn3VPIDB), // 307
914  REG_STR(kRegSDIIn4VPIDA), // 308
915  REG_STR(kRegSDIIn4VPIDB), // 309
916 
921  REG_STR(kRegReserved314), // 314
922  REG_STR(kRegReserved315), // 315
923 
926 
929 
930  REG_STR(kRegReserved320), // 320
931  REG_STR(kRegReserved321), // 321
932  REG_STR(kRegReserved322), // 322
933  REG_STR(kRegReserved323), // 323
934  REG_STR(kRegReserved324), // 324
935  REG_STR(kRegReserved325), // 325
936  REG_STR(kRegReserved326), // 326
937  REG_STR(kRegReserved327), // 327
938  REG_STR(kRegReserved328), // 328
939 
940  REG_STR(kRegHDMITimeCode), // 329
941 
942  // HDMI HDR Registers
949  REG_STR(kRegHDMIHDRControl), // 336
950 
951  REG_STR(kRegSDIOut5Control), // 337
952  REG_STR(kRegSDIOut5VPIDA), // 338
953  REG_STR(kRegSDIOut5VPIDB), // 339
954 
957  REG_STR(kRegRP188InOut5DBB), // 342
958 
959  REG_STR(kRegReserved343), // 343
960 
963 
964  REG_STR(kRegDL5Control), // 346
965 
971 
973 
974  REG_STR(kRegReserved353), // 353
975 
976  REG_STR(kRegDC1), // 354
977  REG_STR(kRegDC2), // 355
979 
982 
983  // HDMI V2 In Registers
985  REG_STR(kRegHDMIV2I2C1Data), // 360
988  REG_STR(kRegHDMIV2HActive), // 363
1000  REG_STR(kRegHDMIV2i2c2Data), // 375
1001 
1002  REG_STR(kRegLUTV2Control), // 376
1003 
1004  // Scott: New DAX/MultiChannel Registers
1005  REG_STR(kRegGlobalControlCh2), // 377
1006  REG_STR(kRegGlobalControlCh3), // 378
1007  REG_STR(kRegGlobalControlCh4), // 379
1008  REG_STR(kRegGlobalControlCh5), // 380
1009  REG_STR(kRegGlobalControlCh6), // 381
1010  REG_STR(kRegGlobalControlCh7), // 382
1011  REG_STR(kRegGlobalControlCh8), // 383
1012 
1013  REG_STR(kRegCh5Control), // 384
1014  REG_STR(kRegCh5OutputFrame), // 385
1015  REG_STR(kRegCh5InputFrame), // 386
1017 
1018  REG_STR(kRegCh6Control), // 388
1019  REG_STR(kRegCh6OutputFrame), // 389
1020  REG_STR(kRegCh6InputFrame), // 390
1022 
1023  REG_STR(kRegCh7Control), // 392
1024  REG_STR(kRegCh7OutputFrame), // 393
1025  REG_STR(kRegCh7InputFrame), // 394
1027 
1028  REG_STR(kRegCh8Control), // 396
1029  REG_STR(kRegCh8OutputFrame), // 397
1030  REG_STR(kRegCh8InputFrame), // 398
1032 
1033  REG_STR(kRegXptSelectGroup21), // 400
1034  REG_STR(kRegXptSelectGroup22), // 401
1035  REG_STR(kRegXptSelectGroup30), // 402
1036  REG_STR(kRegXptSelectGroup23), // 403
1037  REG_STR(kRegXptSelectGroup24), // 404
1038  REG_STR(kRegXptSelectGroup25), // 405
1039  REG_STR(kRegXptSelectGroup26), // 406
1040  REG_STR(kRegXptSelectGroup27), // 407
1041  REG_STR(kRegXptSelectGroup28), // 408
1042  REG_STR(kRegXptSelectGroup29), // 409
1043 
1044  REG_STR(kRegSDIIn5VPIDA), // 410
1045  REG_STR(kRegSDIIn5VPIDB), // 411
1046 
1047  REG_STR(kRegSDIIn6VPIDA), // 412
1048  REG_STR(kRegSDIIn6VPIDB), // 413
1049  REG_STR(kRegSDIOut6VPIDA), // 414
1050  REG_STR(kRegSDIOut6VPIDB), // 415
1053  REG_STR(kRegRP188InOut6DBB), // 418
1056 
1057  REG_STR(kRegSDIIn7VPIDA), // 421
1058  REG_STR(kRegSDIIn7VPIDB), // 422
1059  REG_STR(kRegSDIOut7VPIDA), // 423
1060  REG_STR(kRegSDIOut7VPIDB), // 424
1063  REG_STR(kRegRP188InOut7DBB), // 427
1066 
1067  REG_STR(kRegSDIIn8VPIDA), // 430
1068  REG_STR(kRegSDIIn8VPIDB), // 431
1069  REG_STR(kRegSDIOut8VPIDA), // 432
1070  REG_STR(kRegSDIOut8VPIDB), // 433
1073  REG_STR(kRegRP188InOut8DBB), // 436
1076 
1077  REG_STR(kRegXptSelectGroup31), // 439
1078 
1079  REG_STR(kRegAud5Control), // 440
1080  REG_STR(kRegAud5SourceSelect), // 441
1083 
1084  REG_STR(kRegAud6Control), // 444
1085  REG_STR(kRegAud6SourceSelect), // 445
1088 
1089  REG_STR(kRegAud7Control), // 448
1090  REG_STR(kRegAud7SourceSelect), // 449
1093 
1094  REG_STR(kRegAud8Control), // 452
1095  REG_STR(kRegAud8SourceSelect), // 453
1098 
1099  REG_STR(kRegAudioDetect5678), // 456
1100 
1102 
1103  REG_STR(kRegInput56Status), // 458
1104  REG_STR(kRegInput78Status), // 459
1105 
1111 
1117 
1123 
1124  REG_STR(kRegSDIOut6Control), // 475
1125  REG_STR(kRegSDIOut7Control), // 476
1126  REG_STR(kRegSDIOut8Control), // 477
1127 
1135 
1136  REG_STR(kRegVidProc3Control), // 485
1138  REG_STR(kRegFlatMatte3Value), // 487
1139 
1140  REG_STR(kRegVidProc4Control), // 488
1142  REG_STR(kRegFlatMatte4Value), // 490
1143 
1144  REG_STR(kRegTRSErrorStatus), // 491
1145 
1146  REG_STR(kRegAud5Delay), // 492
1147  REG_STR(kRegAud6Delay), // 493
1148  REG_STR(kRegAud7Delay), // 494
1149  REG_STR(kRegAud8Delay), // 495
1150 
1151  REG_STR(kRegPCMControl4321), // 496
1152  REG_STR(kRegPCMControl8765), // 497
1153 
1162 
1163  REG_STR(kRegXptSelectGroup32), // 506
1164  REG_STR(kRegXptSelectGroup33), // 507
1165  REG_STR(kRegXptSelectGroup34), // 508
1166  REG_STR(kRegXptSelectGroup35), // 509
1167 
1168  REG_STR(kRegReserved510), // 510
1169  REG_STR(kRegReserved511) // 511
1170 
1171 }; // ntv2RegStrings
1172 
1173 
1174 const char * NTV2RegisterNameString (const ULWord inRegNum)
1175 {
1176  static const char * sEmpty ("");
1177  if (inRegNum < kRegNumRegisters)
1178  return ntv2RegStrings [inRegNum];
1179  return sEmpty;
1180 }
1181 
1182 
1183 const char * NTV2InterruptEnumString (const unsigned inInterruptEnum)
1184 {
1185  static const char * sNullString = "";
1186  static const char * sInterruptEnumStrings[] = { "eOutput1", // 0
1187  "eInterruptMask", // 1
1188  "eInput1", // 2
1189  "eInput2", // 3
1190  "eAudio", // 4
1191  "eAudioInWrap", // 5
1192  "eAudioOutWrap", // 6
1193  "eDMA1", // 7
1194  "eDMA2", // 8
1195  "eDMA3", // 9
1196  "eDMA4", // 10
1197  "eChangeEvent", // 11
1198  "eGetIntCount", // 12
1199  "eWrapRate", // 13
1200  "eUart1Tx", // 14
1201  "eUart1Rx", // 15
1202  "eAuxVerticalInterrupt", // 16
1203  "ePushButtonChange", // 17
1204  "eLowPower", // 18
1205  "eDisplayFIFO", // 19
1206  "eSATAChange", // 20
1207  "eTemp1High", // 21
1208  "eTemp2High", // 22
1209  "ePowerButtonChange", // 23
1210  "eInput3", // 24
1211  "eInput4", // 25
1212  "eUart2Tx", // 26
1213  "eUart2Rx", // 27
1214  "eHDMIRxV2HotplugDetect", // 28
1215  "eInput5", // 29
1216  "eInput6", // 30
1217  "eInput7", // 31
1218  "eInput8", // 32
1219  "eInterruptMask2", // 33
1220  "eOutput2", // 34
1221  "eOutput3", // 35
1222  "eOutput4", // 36
1223  "eOutput5", // 37
1224  "eOutput6", // 38
1225  "eOutput7", // 39
1226  "eOutput8" }; // 40
1227 #if !defined(NTV2_BUILDING_DRIVER)
1228  NTV2_ASSERT(sizeof(sInterruptEnumStrings) / sizeof(void*) == (unsigned)eNumInterruptTypes);
1229 #endif
1230  if (inInterruptEnum < (unsigned)eNumInterruptTypes)
1231  return sInterruptEnumStrings[inInterruptEnum];
1232  return sNullString;
1233 } // NTV2InterruptEnumString
1234 
1235 #ifdef MSWindows
1236 #include <stdio.h>
1237 #include <stdarg.h>
1238 #include <ctype.h>
1239 
1240 void __cdecl odprintf(const char *format, ...)
1241 {
1242  //#ifdef _DEBUG
1243  char buf[4096], *p = buf;
1244  va_list args;
1245 
1246  va_start(args, format);
1247  p += _vsnprintf_s(buf, sizeof buf - 1, format, args);
1248  va_end(args);
1249 
1250  while ( p > buf && isspace(p[-1]) )
1251  *--p = '\0';
1252 
1253  *p++ = '\r';
1254  *p++ = '\n';
1255  *p = '\0';
1256 
1257  ::OutputDebugStringA(buf);
1258 //#endif
1259 }
1260 #endif // MSWindows
Fractional rate of 15,000 frames per 1,001 seconds.
Definition: ntv2enums.h:433
See Io XT.
Definition: ntv2enums.h:44
const char * ntv2RegStrings_SDI_RX_Status[]
Definition: ntv2debug.cpp:513
const char * NTV2FrameGeometryString(NTV2FrameGeometry geom)
Definition: ntv2debug.cpp:265
const char * NTV2DeviceIDString(const NTV2DeviceID id)
Definition: ntv2debug.cpp:15
#define odprintf
Definition: ntv2debug.h:40
Identifies SMPTE HD 1080p.
Definition: ntv2enums.h:175
See KONA IP.
Definition: ntv2enums.h:71
See Io IP.
Definition: ntv2enums.h:41
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:363
See KONA 5.
Definition: ntv2enums.h:55
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
Definition: ntv2enums.h:223
See KONA 5.
Definition: ntv2enums.h:63
10-Bit 4:2:2 2-Plane YCbCr
Definition: ntv2enums.h:256
See KONA LHe Plus.
Definition: ntv2enums.h:78
720x576, for PAL 625i, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:362
See 10-Bit YCbCr Format.
Definition: ntv2enums.h:226
See KONA 5.
Definition: ntv2enums.h:56
See Corvid 88.
Definition: ntv2enums.h:32
Apple ProRes DVC Pro.
Definition: ntv2enums.h:245
1280x720, for 720p, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:356
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
Fractional rate of 120,000 frames per 1,001 seconds.
Definition: ntv2enums.h:431
See Corvid 24.
Definition: ntv2enums.h:24
Identifies SMPTE SD 525i.
Definition: ntv2enums.h:173
See 10-Bit Raw YCbCr (CION).
Definition: ntv2enums.h:252
Identifies 4K psf.
Definition: ntv2enums.h:186
See Alternate 8-Bit YCbCr (&#39;YUY2&#39;).
Definition: ntv2enums.h:231
See 10-Bit YCbCr - DPX Format.
Definition: ntv2enums.h:235
Identifies high frame-rate UHD.
Definition: ntv2enums.h:181
See KONA IP25.
Definition: ntv2enums.h:75
See 3-Plane 10-Bit YCbCr 4:2:2 (&#39;I422_10LE&#39; a.k.a. &#39;YUV-P-L10&#39;).
Definition: ntv2enums.h:254
See KONA 4 (Quad Mode).
Definition: ntv2enums.h:48
Identifies 8K.
Definition: ntv2enums.h:184
See 3-Plane 8-Bit YCbCr 4:2:0 (&#39;I420&#39; a.k.a. &#39;YUV-P420&#39;).
Definition: ntv2enums.h:237
2048x1080, for 2Kx1080p, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:368
Definition: json.hpp:5362
Fractional rate of 60,000 frames per 1,001 seconds.
Definition: ntv2enums.h:421
See KONA 5.
Definition: ntv2enums.h:58
See 8-Bit DVCPro.
Definition: ntv2enums.h:236
See KONA 1.
Definition: ntv2enums.h:45
uint32_t ULWord
Definition: ajatypes.h:236
See KONA 5.
Definition: ntv2enums.h:65
See Io 4K Plus.
Definition: ntv2enums.h:37
3840x2160, for UHD, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:371
See Corvid 44.
Definition: ntv2enums.h:26
const char * ntv2RegStrings[]
Definition: ntv2debug.cpp:587
#define NTV2_ASSERT(_expr_)
Definition: ajatypes.h:489
Identifies SMPTE HD 2K1080psf.
Definition: ntv2enums.h:178
See 3-Plane 8-Bit YCbCr 4:2:2 (Weitek &#39;Y42B&#39; a.k.a. &#39;YUV-P8&#39;).
Definition: ntv2enums.h:250
See KONA 3G (Quad Mode).
Definition: ntv2enums.h:47
50 frames per second
Definition: ntv2enums.h:427
#define REG_STR(_x_)
Definition: ntv2debug.cpp:585
Identifies SMPTE HD 720p.
Definition: ntv2enums.h:172
See KONA 5.
Definition: ntv2enums.h:66
See T-TAP.
Definition: ntv2enums.h:94
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:366
Fractional rate of 48,000 frames per 1,001 seconds.
Definition: ntv2enums.h:429
30 frames per second
Definition: ntv2enums.h:422
NTV2FrameRate
Identifies a particular video frame rate.
Definition: ntv2enums.h:416
7680x4320, for UHD2, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:375
See KONA 5.
Definition: ntv2enums.h:62
2048x1080, NTV2_VANCMODE_TALLER
Definition: ntv2enums.h:360
8-Bit 4:2:2 2-Plane YCbCr
Definition: ntv2enums.h:258
NTV2Standard
Identifies a particular video standard.
Definition: ntv2enums.h:169
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
See KONA 5.
Definition: ntv2enums.h:57
Identifies UHD2.
Definition: ntv2enums.h:183
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:354
See Io 4K (Quad Mode).
Definition: ntv2enums.h:36
16-Bit ARGB
Definition: ntv2enums.h:249
const char * NTV2RegisterNameString(const ULWord inRegNum)
Definition: ntv2debug.cpp:1174
See KONA LHi.
Definition: ntv2enums.h:79
Invalid or "not found".
Definition: ntv2enums.h:101
See Corvid HB-R.
Definition: ntv2enums.h:34
Identifies Ultra-High-Definition (UHD) psf.
Definition: ntv2enums.h:185
1280x720, for 720p, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:364
See 10-Bit RGB Format.
Definition: ntv2enums.h:230
See KONA 5.
Definition: ntv2enums.h:61
See KONA 5.
Definition: ntv2enums.h:67
const char * NTV2VideoFormatString(NTV2VideoFormat fmt)
Definition: ntv2debug.cpp:333
See Corvid 44 12G.
Definition: ntv2enums.h:31
See KONA 5.
Definition: ntv2enums.h:54
Software device that doesn&#39;t emulate one of the above devices.
Definition: ntv2enums.h:84
See KONA 5.
Definition: ntv2enums.h:59
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:232
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:228
const char * NTV2DeviceString(const NTV2DeviceID id)
Definition: ntv2debug.cpp:103
See KONA HDMI.
Definition: ntv2enums.h:68
Identifies SMPTE HD 2K1080p.
Definition: ntv2enums.h:177
See Corvid 44 12G.
Definition: ntv2enums.h:27
See 12-Bit Packed RGB.
Definition: ntv2enums.h:244
See Io Express.
Definition: ntv2enums.h:39
1920x1080, NTV2_VANCMODE_TALLER
Definition: ntv2enums.h:359
720x486, for NTSC 525i, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:361
See 3-Plane 10-Bit YCbCr 4:2:0 (&#39;I420_10LE&#39; a.k.a. &#39;YUV-P420-L10&#39;).
Definition: ntv2enums.h:253
See KONA LHi.
Definition: ntv2enums.h:80
const char * NTV2StandardString(NTV2Standard std)
Definition: ntv2debug.cpp:191
const char * NTV2FrameBufferFormatString(NTV2FrameBufferFormat fmt)
Definition: ntv2debug.cpp:220
4096x2160, for 4K, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:373
8192x4320, for 8K, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:377
10-Bit DPX Little-Endian
Definition: ntv2enums.h:242
See KONA 5.
Definition: ntv2enums.h:50
Identifies SMPTE HD 1080i or 1080psf.
Definition: ntv2enums.h:171
Identifies Ultra-High-Definition (UHD)
Definition: ntv2enums.h:179
See KONA IP.
Definition: ntv2enums.h:72
Fractional rate of 30,000 frames per 1,001 seconds.
Definition: ntv2enums.h:423
10-Bit 4:2:0 2-Plane YCbCr
Definition: ntv2enums.h:255
Identifies SMPTE SD 625i.
Definition: ntv2enums.h:174
2048x1080, for 2Kx1080p, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:365
Identifies 4K.
Definition: ntv2enums.h:180
See KONA 5.
Definition: ntv2enums.h:64
See Corvid 22.
Definition: ntv2enums.h:23
NTV2FrameGeometry
Identifies a particular video frame geometry.
Definition: ntv2enums.h:352
720x576, for PAL 625i, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:358
See Corvid HEVC.
Definition: ntv2enums.h:35
See 8-Bit HDV.
Definition: ntv2enums.h:238
Apple ProRes HDV.
Definition: ntv2enums.h:246
60 frames per second
Definition: ntv2enums.h:419
15 frames per second
Definition: ntv2enums.h:432
10-Bit ARGB
Definition: ntv2enums.h:248
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:229
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_OFF
Definition: ntv2enums.h:357
See Io X3.
Definition: ntv2enums.h:43
Identifies high frame-rate 4K.
Definition: ntv2enums.h:182
const char * NTV2FrameRateString(NTV2FrameRate rate)
Definition: ntv2debug.cpp:298
120 frames per second
Definition: ntv2enums.h:430
See 48-Bit RGB.
Definition: ntv2enums.h:243
See Corvid 44 12G.
Definition: ntv2enums.h:29
See Io IP.
Definition: ntv2enums.h:40
25 frames per second
Definition: ntv2enums.h:424
See Io 4K (UFC Mode).
Definition: ntv2enums.h:38
See Corvid, Corvid 3G.
Definition: ntv2enums.h:22
10-Bit YCbCrA
Definition: ntv2enums.h:241
See KONA 5.
Definition: ntv2enums.h:51
See Corvid 88 (Gen3).
Definition: ntv2enums.h:33
See Corvid 44 12G.
Definition: ntv2enums.h:28
See 10-Bit RGB - DPX Format.
Definition: ntv2enums.h:234
See 24-Bit RGB.
Definition: ntv2enums.h:239
10-Bit Raw RGB
Definition: ntv2enums.h:251
#define NTV2DEBUG_ENUM_CASE_RETURN_STR(enum_name)
Definition: ntv2debug.cpp:13
See KONA X™.
Definition: ntv2enums.h:83
See Corvid 44 (Gen3).
Definition: ntv2enums.h:30
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_TALL
Definition: ntv2enums.h:367
See KONA 3G (UFC Mode).
Definition: ntv2enums.h:46
const char * NTV2InterruptEnumString(const unsigned inInterruptEnum)
Definition: ntv2debug.cpp:1183
48 frames per second
Definition: ntv2enums.h:428
See KONA X™.
Definition: ntv2enums.h:81
See KONA 4 (UFC Mode).
Definition: ntv2enums.h:49
24 frames per second
Definition: ntv2enums.h:425
10-Bit Packed RGB
Definition: ntv2enums.h:247
8-Bit 4:2:0 2-Plane YCbCr
Definition: ntv2enums.h:257
720x576, for PAL 625i, NTV2_VANCMODE_TALLER
Definition: ntv2enums.h:370
Declares enums and structs used by all platform drivers and the SDK.
See 24-Bit BGR.
Definition: ntv2enums.h:240
Fractional rate of 24,000 frames per 1,001 seconds.
Definition: ntv2enums.h:426
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_TALLER
Definition: ntv2enums.h:369
See KONA 5.
Definition: ntv2enums.h:52
See T-TAP Pro.
Definition: ntv2enums.h:95
See KONA IP25.
Definition: ntv2enums.h:74
See KONA XM™.
Definition: ntv2enums.h:82
See 8-Bit YCbCr Format.
Definition: ntv2enums.h:227
See Corvid, Corvid 3G.
Definition: ntv2enums.h:25
See KONA 5.
Definition: ntv2enums.h:60