AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
ntv2vpid.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #include "ntv2vpid.h"
9 #include "ntv2vpidfromspec.h"
10 #include "ntv2debug.h"
11 #include "ntv2utils.h"
12 #include "ntv2registerexpert.h" // For YesNo macro
13 #include <sstream>
14 
15 using namespace std;
16 
17 #ifndef NULL
18 #define NULL (0)
19 #endif
20 
36 static bool stTablesInitialized (false);
37 
39 {
40  public:
42  {
43  for (int i = 0; i < VPIDPictureRate_ReservedF + 1; i++)
44  {
54  }
55 
57  // stTable720p[VPIDPictureRate_2400] = NTV2_FORMAT_720p_2400;
59  // stTable720p[VPIDPictureRate_2997] = NTV2_FORMAT_720p_2997;
60  // stTable720p[VPIDPictureRate_3000] = NTV2_FORMAT_720p_3000;
64 
75 
81  // stTable1920p[VPIDPictureRate_4795] = NTV2_FORMAT_1080p_4795; // 3G-A
82  // stTable1920p[VPIDPictureRate_4800] = NTV2_FORMAT_1080p_4800; // 3G-A
86 
90  // stTable2048psf[VPIDPictureRate_2997] = NTV2_FORMAT_1080psf_2K_2997;
91  // stTable2048psf[VPIDPictureRate_3000] = NTV2_FORMAT_1080psf_2K_3000;
97 
103  // stTable1920psf[VPIDPictureRate_4795] = NTV2_FORMAT_1080p_4795; // 3G-B or Duallink 1.5G
104  // stTable1920psf[VPIDPictureRate_4800] = NTV2_FORMAT_1080p_4800; // 3G-B or Duallink 1.5G
108 
109  // stTable2048i[VPIDPictureRate_2500] = NTV2_FORMAT_2048x1080i_2500;
110  // stTable2048i[VPIDPictureRate_2997] = NTV2_FORMAT_2048x1080i_2997;
111  // stTable2048i[VPIDPictureRate_3000] = NTV2_FORMAT_2048x1080i_3000;
112 
116 
125 
134 
145 
156 
165 
176 
185 
196 
197  stTablesInitialized = true;
198  } // constructor
199 
200 }; // VPIDTableInitializer
201 
202 
204 
205 
207  : m_uVPID (inData)
208 {
210 }
211 
212 
214 {
216  m_uVPID = inVPID.m_uVPID;
217 }
218 
219 
221 {
223  if (&inRHS != this)
224  m_uVPID = inRHS.m_uVPID;
225  return *this;
226 }
227 
228 
230  NTV2FrameBufferFormat frameBufferFormat,
231  bool progressive,
232  bool aspect16x9,
233  VPIDChannel channel)
234 {
235  return SetVPIDData (m_uVPID, videoFormat, frameBufferFormat, progressive, aspect16x9, channel);
236 }
237 
238 
240  bool dualLink,
241  bool format48Bit,
242  bool output3Gb,
243  bool st425,
244  VPIDChannel channel)
245 {
246  return SetVPIDData (m_uVPID, videoFormat, dualLink, format48Bit, output3Gb, st425, channel);
247 }
248 
249 
250 bool CNTV2VPID::IsStandard3Ga (void) const
251 {
252  switch(GetStandard())
253  {
254  case VPIDStandard_720_3Ga: // Not to be used for aspect ratio. 720p is always zero.
258  return true;
259  default:
260  break;
261  }
262 
263  return false;
264 }
265 
267 {
268  switch(GetStandard())
269  {
272  return true;
273  default:
274  break;
275  }
276 
277  return false;
278 }
279 
280 
282 {
283  switch(GetStandard())
284  {
288  return true;
289  default:
290  break;
291  }
292 
293  return false;
294 }
295 
297 {
298  m_uVPID = (m_uVPID & ~kRegMaskVPIDVersionID) |
299  ((ULWord(inVPIDVersion) << kRegShiftVPIDVersionID) & kRegMaskVPIDVersionID);
300  return *this;
301 }
302 
303 
305 {
307 }
308 
309 
311 {
312  m_uVPID = (m_uVPID & ~kRegMaskVPIDStandard) |
314  return *this;
315 }
316 
317 
319 {
321 }
322 
323 
324 CNTV2VPID & CNTV2VPID::SetProgressiveTransport (const bool inIsProgressiveTransport)
325 {
326  m_uVPID = (m_uVPID & ~kRegMaskVPIDProgressiveTransport) |
327  (((inIsProgressiveTransport ? 1UL : 0UL) << kRegShiftVPIDProgressiveTransport) & kRegMaskVPIDProgressiveTransport);
328  return *this;
329 }
330 
331 
333 {
334  return (m_uVPID & kRegMaskVPIDProgressiveTransport) != 0;
335 }
336 
337 
338 CNTV2VPID & CNTV2VPID::SetProgressivePicture (const bool inIsProgressivePicture)
339 {
340  m_uVPID = (m_uVPID & ~kRegMaskVPIDProgressivePicture) |
341  (((inIsProgressivePicture ? 1UL : 0UL) << kRegShiftVPIDProgressivePicture) & kRegMaskVPIDProgressivePicture);
342  return *this;
343 }
344 
345 
347 {
348  return (m_uVPID & kRegMaskVPIDProgressivePicture) != 0;
349 }
350 
351 
353 {
354  m_uVPID = (m_uVPID & ~kRegMaskVPIDPictureRate) |
356  return *this;
357 }
358 
360 {
362 }
363 
364 
365 CNTV2VPID & CNTV2VPID::SetImageAspect16x9 (const bool inIs16x9Aspect)
366 {
367  VPIDStandard standard = GetStandard();
368  if(standard == VPIDStandard_1080 ||
369  standard == VPIDStandard_1080_DualLink ||
370  standard == VPIDStandard_1080_DualLink_3Gb ||
372  standard == VPIDStandard_2160_DualLink)
373  {
374  m_uVPID = (m_uVPID & ~kRegMaskVPIDImageAspect16x9Alt) |
375  (((inIs16x9Aspect ? 1UL : 0UL) << kRegShiftVPIDImageAspect16x9Alt) & kRegMaskVPIDImageAspect16x9Alt);
376  }
377  else
378  {
379  m_uVPID = (m_uVPID & ~kRegMaskVPIDImageAspect16x9) |
380  (((inIs16x9Aspect ? 1UL : 0UL) << kRegShiftVPIDImageAspect16x9) & kRegMaskVPIDImageAspect16x9);
381  }
382  return *this;
383 }
384 
385 
387 {
388  VPIDStandard standard = GetStandard();
389  if(standard == VPIDStandard_1080 ||
390  standard == VPIDStandard_1080_DualLink ||
391  standard == VPIDStandard_1080_DualLink_3Gb ||
393  standard == VPIDStandard_2160_DualLink)
394  {
395  return (m_uVPID & kRegMaskVPIDImageAspect16x9Alt) != 0;
396  }
397  return (m_uVPID & kRegMaskVPIDImageAspect16x9) != 0;
398 }
399 
400 
402 {
403  m_uVPID = (m_uVPID & ~kRegMaskVPIDSampling) |
405  return *this;
406 }
407 
408 
410 {
412 }
413 
414 bool CNTV2VPID::IsRGBSampling (void) const
415 {
416  switch (GetSampling())
417  {
420  case VPIDSampling_GBRD_4444: return true;
421  default: break;
422  }
423  return false;
424 }
425 
427 {
428  m_uVPID = (m_uVPID & ~kRegMaskVPIDChannel) |
429  ((ULWord(inChannel) << kRegShiftVPIDChannel) & kRegMaskVPIDChannel);
430  return *this;
431 }
432 
433 
435 {
436  return VPIDChannel((m_uVPID & kRegMaskVPIDChannel) >> kRegShiftVPIDChannel);
437 }
438 
439 
441 {
442  m_uVPID = (m_uVPID & ~kRegMaskVPIDDualLinkChannel) |
444  return *this;
445 }
446 
447 
449 {
451 }
452 
453 
455 {
456  m_uVPID = (m_uVPID & ~kRegMaskVPIDBitDepth) |
458  return *this;
459 }
460 
461 
463 {
465 }
466 
468 {
469  m_uVPID = (m_uVPID & ~kRegMaskVPIDXferChars) |
471  return *this;
472 }
473 
474 
476 {
478 }
479 
481 {
482  VPIDStandard standard (GetStandard());
483  if (standard == VPIDStandard_1080 ||
484  standard == VPIDStandard_1080_DualLink ||
485  standard == VPIDStandard_1080_DualLink_3Gb ||
487  standard == VPIDStandard_2160_DualLink)
488  {
489  ULWord lowBit(0), highBit(0);
490  highBit = (inColorimetry&0x2)>>1;
491  lowBit = inColorimetry&0x1;
492  m_uVPID = (m_uVPID & ~kRegMaskVPIDColorimetryAltHigh) |
494  m_uVPID = (m_uVPID & ~kRegMaskVPIDColorimetryAltLow) |
496  }
497  else
498  {
499  m_uVPID = (m_uVPID & ~kRegMaskVPIDColorimetry) |
501  }
502  return *this;
503 }
504 
505 
507 {
508  VPIDStandard standard (GetStandard());
509  if(standard == VPIDStandard_1080 ||
510  standard == VPIDStandard_1080_DualLink ||
511  standard == VPIDStandard_1080_DualLink_3Gb ||
513  standard == VPIDStandard_2160_DualLink)
514  {
515  //The bits are sparse so...
516  uint8_t lowBit(0), highBit(0), value(0);
519  value = (highBit << 1)|lowBit;
520  return NTV2VPIDColorimetry(value);
521  }
523 }
524 
526 {
527  m_uVPID = (m_uVPID & ~kRegmaskVPIDLuminance) |
529  return *this;
530 }
531 
532 
534 {
536 }
537 
539 {
540  switch(GetBitDepth())
541  {
543  case VPIDBitDepth_10:
544  if(inRGBRange == NTV2_VPID_Range_Narrow || !IsRGBSampling())
546  else
548  break;
550  case VPIDBitDepth_12:
551  if(inRGBRange == NTV2_VPID_Range_Narrow || !IsRGBSampling())
553  else
555  }
556 
557  return *this;
558 }
559 
560 
562 {
563  if(!IsRGBSampling())
564  return NTV2_VPID_Range_Narrow;
565 
566  switch(GetBitDepth())
567  {
570  return NTV2_VPID_Range_Full;
571  default:
572  return NTV2_VPID_Range_Narrow;
573  }
574 }
575 
576 
577 // static - this one doesn't support 3Gb
579  const NTV2VideoFormat inOutputFormat,
580  const NTV2FrameBufferFormat inFrameBufferFormat,
581  const bool inIsProgressive,
582  const bool inIs16x9Aspect,
583  const VPIDChannel inChannel,
584  const bool inUseChannel)
585 {
586  (void)inIsProgressive;
587  (void)inIs16x9Aspect;
588 
589  bool bRGB48Bit (false);
590  bool bDualLinkRGB (false);
591  const bool kOutput3Gb (false);
592 
593  switch(inFrameBufferFormat)
594  {
595  case NTV2_FBF_48BIT_RGB:
596  bRGB48Bit = true;
597  bDualLinkRGB = true; // RGB 12 bit
598  break;
599  case NTV2_FBF_ARGB:
600  case NTV2_FBF_RGBA:
601  case NTV2_FBF_ABGR:
602  case NTV2_FBF_10BIT_RGB:
603  case NTV2_FBF_10BIT_DPX:
604  case NTV2_FBF_24BIT_RGB:
605  case NTV2_FBF_24BIT_BGR:
608  case NTV2_FBF_10BIT_ARGB:
609  case NTV2_FBF_16BIT_ARGB:
610  bDualLinkRGB = true; // RGB 8+10 bit;
611  bRGB48Bit = false;
612  break;
613  default:
614  bDualLinkRGB = false; // All other
615  bRGB48Bit = false;
616  break;
617  }
618 
619  // should use this call directly
620  return SetVPIDData (outVPID,
621  inOutputFormat,
622  bDualLinkRGB,
623  bRGB48Bit,
624  kOutput3Gb,
625  false, // not ST525
626  inChannel,
627  inUseChannel);
628 }
629 
630 
632  const NTV2VideoFormat inOutputFormat,
633  const bool inIsDualLinkRGB,
634  const bool inIsRGB48Bit,
635  const bool inOutputIs3Gb,
636  const bool inIsSMPTE425,
637  const VPIDChannel inChannel,
638  const bool inUseChannel,
639  const bool inOutputIs6G,
640  const bool inOutputIs12G,
641  const NTV2VPIDXferChars inXferChars,
642  const NTV2VPIDColorimetry inColorimetry,
643  const NTV2VPIDLuminance inLuminance,
644  const NTV2VPIDRGBRange inRGBRange)
645 {
646  VPIDSpec vpidSpec;
647 
648 
649  ::memset (&vpidSpec, 0, sizeof(vpidSpec));
650 
651  vpidSpec.videoFormat = inOutputFormat;
652  vpidSpec.pixelFormat = inIsRGB48Bit ? NTV2_FBF_48BIT_RGB : NTV2_FBF_INVALID;
653  vpidSpec.isRGBOnWire = inIsDualLinkRGB;
654  vpidSpec.isOutputLevelA = (NTV2_IS_3G_FORMAT (inOutputFormat) && ! inOutputIs3Gb) ? true : false;
655  vpidSpec.isOutputLevelB = inOutputIs3Gb;
656  vpidSpec.isDualLink = inIsDualLinkRGB || (NTV2_IS_372_DUALLINK_FORMAT(inOutputFormat) && !vpidSpec.isOutputLevelA);
657  vpidSpec.isTwoSampleInterleave = inIsSMPTE425;
658  vpidSpec.useChannel = inUseChannel;
659  vpidSpec.vpidChannel = inChannel;
660  vpidSpec.isStereo = false;
661  vpidSpec.isRightEye = false;
662  vpidSpec.audioCarriage = VPIDAudio_Unknown;
663  vpidSpec.isOutput6G = inOutputIs6G;
664  vpidSpec.isOutput12G = inOutputIs12G;
665  vpidSpec.transferCharacteristics = inXferChars;
666  vpidSpec.colorimetry = inColorimetry;
667  vpidSpec.luminance = inLuminance;
668  vpidSpec.rgbRange = inRGBRange;
669 
670  return ::SetVPIDFromSpec (&outVPID, &vpidSpec);
671 }
672 
673 
675 {
676  NTV2VideoFormat videoFormat = NTV2_FORMAT_UNKNOWN;
677  VPIDStandard vpidStandard = GetStandard();
678  bool vpidProgPicture = GetProgressivePicture();
679  bool vpidProgTransport = GetProgressiveTransport();
680  bool vpidHorizontal2048 = ((m_uVPID & kRegMaskVPIDHorizontalSampling) != 0);
681 
682  VPIDPictureRate vpidFrameRate = GetPictureRate();
683 
684  switch (vpidStandard)
685  {
686  case VPIDStandard_483_576:
687  switch (vpidFrameRate)
688  {
690  videoFormat = NTV2_FORMAT_625_5000;
691  break;
693  videoFormat = NTV2_FORMAT_525_5994;
694  break;
695  default:
696  break;
697  }
698  break;
699  case VPIDStandard_720:
700  switch (vpidFrameRate)
701  {
703  videoFormat = NTV2_FORMAT_720p_5000;
704  break;
706  videoFormat = NTV2_FORMAT_720p_5994;
707  break;
709  videoFormat = NTV2_FORMAT_720p_6000;
710  break;
711  default:
712  break;
713  }
714  break;
717  videoFormat = stTable720p[vpidFrameRate];
718  break;
719  case VPIDStandard_1080:
726  if (vpidProgPicture)
727  {
728  if (vpidProgTransport)
729  {
730  if (vpidHorizontal2048)
731  {
732  videoFormat = stTable2048p[vpidFrameRate];
733  }
734  else
735  {
736  videoFormat = stTable1920p[vpidFrameRate];
737  }
738  }
739  else
740  {
741  if (vpidHorizontal2048)
742  {
743  videoFormat = stTable2048psf[vpidFrameRate];
744  }
745  else
746  {
747  videoFormat = stTable1920psf[vpidFrameRate];
748  }
749  }
750  }
751  else
752  {
753  if (vpidHorizontal2048)
754  {
755  videoFormat = stTable2048i[vpidFrameRate];
756  }
757  else
758  {
759  videoFormat = stTable1920i[vpidFrameRate];
760  }
761  }
762  break;
766  if (vpidProgTransport)
767  {
768  if (vpidHorizontal2048)
769  {
770  videoFormat = stTable4096pSID[vpidFrameRate];
771  }
772  else
773  {
774  videoFormat = stTable3840pSID[vpidFrameRate];
775  }
776  }
777  else
778  {
779  if (vpidHorizontal2048)
780  {
781  videoFormat = stTable4096psfSID[vpidFrameRate];
782  }
783  else
784  {
785  videoFormat = stTable3840psfSID[vpidFrameRate];
786  }
787  }
788  break;
791  if (vpidHorizontal2048)
792  {
793  videoFormat = stTable4096pTSI[vpidFrameRate];
794  }
795  else
796  {
797  videoFormat = stTable3840pTSI[vpidFrameRate];
798  }
799  break;
801  if (vpidHorizontal2048)
802  {
803  videoFormat = stTable4096pTSI[vpidFrameRate];
804  }
805  else
806  {
807  videoFormat = stTable3840pTSI[vpidFrameRate];
808  }
809  break;
812  if (vpidHorizontal2048)
813  {
814  videoFormat = stTable8192p[vpidFrameRate];
815  }
816  else
817  {
818  videoFormat = stTable7680p[vpidFrameRate];
819  }
820  break;
821  default:
822  break;
823  }
824 
825  return videoFormat;
826 }
827 
828 // Macro to simplify returning of string for given enum
829 #define VPID_ENUM_CASE_RETURN_STR(enum_name) case(enum_name): return #enum_name
830 
831 const string CNTV2VPID::VersionString (const VPIDVersion version)
832 {
833  switch (version)
834  {
837  // intentionally not setting a default: so compiler will warn about missing enums
838  }
839  return "";
840 }
841 
843 {
844  switch (std)
845  {
893  // intentionally not setting a default: so compiler will warn about missing enums
894  }
895  return "";
896 }
897 
899 {
900  switch (rate)
901  {
918  // intentionally not setting a default: so compiler will warn about missing enums
919  }
920  return "";
921 }
922 
923 const string CNTV2VPID::SamplingString (const VPIDSampling sample)
924 {
925  switch (sample)
926  {
943  // intentionally not setting a default: so compiler will warn about missing enums
944  }
945  return "";
946 }
947 
948 const string CNTV2VPID::ChannelString (const VPIDChannel chan)
949 {
950  switch (chan)
951  {
960  // intentionally not setting a default: so compiler will warn about missing enums
961  }
962  return "";
963 }
964 
966 {
967  switch (range)
968  {
973  // intentionally not setting a default: so compiler will warn about missing enums
974  }
975  return "";
976 }
977 
978 const string CNTV2VPID::BitDepthString (const VPIDBitDepth depth)
979 {
980  switch (depth)
981  {
986  // intentionally not setting a default: so compiler will warn about missing enums
987  }
988  return "";
989 }
990 
991 const string CNTV2VPID::LinkString (const VPIDLink link)
992 {
993  switch (link)
994  {
1003  // intentionally not setting a default: so compiler will warn about missing enums
1004  }
1005  return "";
1006 }
1007 
1008 const string CNTV2VPID::AudioString (const VPIDAudio audio)
1009 {
1010  switch (audio)
1011  {
1016  // intentionally not setting a default: so compiler will warn about missing enums
1017  }
1018  return "";
1019 }
1020 
1021 const string CNTV2VPID::VPIDVersionToString (const VPIDVersion inVers)
1022 {
1023  switch (inVers)
1024  {
1025  case VPIDVersion_0: return "0";
1026  case VPIDVersion_1: return "1";
1027  #if !defined(_DEBUG)
1028  default: break;
1029  #endif
1030  }
1031  return "";
1032 }
1033 
1035 {
1036  switch (inStd)
1037  {
1038  case VPIDStandard_Unknown: return "Unknown";
1039  case VPIDStandard_483_576: return "Standard Definition";
1040  case VPIDStandard_483_576_DualLink: return "SD Dual Link?";
1041  case VPIDStandard_483_576_540Mbs: return "SD 540Mbs?";
1042  case VPIDStandard_720: return "720 Single Link";
1043  case VPIDStandard_1080: return "1080 Single Link";
1044  case VPIDStandard_483_576_1485Mbs: return "SD 1485Mbs?";
1045  case VPIDStandard_1080_DualLink: return "1080 Dual Link";
1046  case VPIDStandard_720_3Ga: return "720 3G Level A";
1047  case VPIDStandard_1080_3Ga: return "1080 3G Level A";
1048  case VPIDStandard_1080_DualLink_3Gb: return "1080 Dual Link 3G Level B";
1049  case VPIDStandard_720_3Gb: return "2x720 3G Level B";
1050  case VPIDStandard_1080_3Gb: return "2x1080 3G Level B";
1051  case VPIDStandard_483_576_3Gb: return "SD 3G Level B?";
1052  case VPIDStandard_720_Stereo_3Gb: return "720_Stereo_3Gb";
1053  case VPIDStandard_1080_Stereo_3Gb: return "1080_Stereo_3Gb";
1054  case VPIDStandard_1080_QuadLink: return "1080 Quad Link";
1055  case VPIDStandard_720_Stereo_3Ga: return "720_Stereo_3Ga";
1056  case VPIDStandard_1080_Stereo_3Ga: return "1080_Stereo_3Ga";
1057  case VPIDStandard_1080_Stereo_DualLink_3Gb: return "1080_Stereo_DualLink_3Gb";
1058  case VPIDStandard_1080_Dual_3Ga: return "1080 Dual Link 3Ga";
1059  case VPIDStandard_1080_Dual_3Gb: return "1080 Dual Link 3Gb";
1060  case VPIDStandard_2160_DualLink: return "2160 Dual Link";
1061  case VPIDStandard_2160_QuadLink_3Ga: return "2160 Quad Link 3Ga";
1062  case VPIDStandard_2160_QuadDualLink_3Gb: return "2160 Quad Dual Link 3Gb";
1063  case VPIDStandard_1080_Stereo_Quad_3Ga: return "1080_Stereo_Quad_3Ga";
1064  case VPIDStandard_1080_Stereo_Quad_3Gb: return "1080_Stereo_Quad_3Gb";
1065  case VPIDStandard_2160_Stereo_Quad_3Gb: return "2160_Stereo_Quad_3Gb";
1066  case VPIDStandard_1080_OctLink: return "1080 Octa Link";
1067  case VPIDStandard_UHDTV1_Single_DualLink_10Gb: return "UHDTV1_Single_DualLink_10Gb";
1068  case VPIDStandard_UHDTV2_Quad_OctaLink_10Gb: return "UHDTV2_Quad_OctaLink_10Gb";
1069  case VPIDStandard_UHDTV1_MultiLink_10Gb: return "UHDTV1_MultiLink_10Gb";
1070  case VPIDStandard_UHDTV2_MultiLink_10Gb: return "UHDTV2_MultiLink_10Gb";
1071  case VPIDStandard_VC2: return "VC2";
1072  case VPIDStandard_720_1080_Stereo: return "720_1080_Stereo";
1073  case VPIDStandard_VC2_Level65_270Mbs: return "VC2_Level65_270Mbs";
1074  case VPIDStandard_4K_DCPIF_FSW709_10Gbs: return "4K_DCPIF_FSW709_10Gbs";
1075  case VPIDStandard_FT_2048x1556_Dual: return "FT_2048x1556_Dual";
1076  case VPIDStandard_FT_2048x1556_3Gb: return "FT_2048x1556_3Gb";
1077  case VPIDStandard_2160_Single_6Gb: return "2160_Single_6Gb";
1078  case VPIDStandard_1080_Single_6Gb: return "1080_Single_6Gb";
1079  case VPIDStandard_1080_AFR_Single_6Gb: return "1080_AFR_Single_6Gb";
1080  case VPIDStandard_2160_Single_12Gb: return "2160_Single_12Gb";
1081  case VPIDStandard_1080_10_12_AFR_Single_12Gb: return "1080_10_12_AFR_Single_12Gb";
1082  case VPIDStandard_4320_DualLink_12Gb: return "4320_DualLink_12Gb";
1083  case VPIDStandard_2160_DualLink_12Gb: return "2160_DualLink_12Gb";
1084  case VPIDStandard_4320_QuadLink_12Gb: return "4320_QuadLink_12Gb";
1085  #if !defined(_DEBUG)
1086  default: break;
1087  #endif
1088  }
1089  return "";
1090 }
1091 
1093 {
1094  switch (inStd)
1095  {
1096  case VPIDStandard_483_576:
1098  case VPIDStandard_720:
1099  case VPIDStandard_1080:
1100  case VPIDStandard_720_3Ga:
1101  case VPIDStandard_1080_3Ga:
1102  case VPIDStandard_720_3Gb:
1103  case VPIDStandard_1080_3Gb:
1105  case VPIDStandard_VC2:
1112  case VPIDStandard_1080_10_12_AFR_Single_12Gb: return true;
1113 
1119 // case VPIDStandard_483_576_360Mbs:
1144  default: break;
1145  }
1146  return false;
1147 }
1148 
1150 {
1151  switch (inStd)
1152  {
1158 // case VPIDStandard_483_576_360Mbs:
1171  case VPIDStandard_4320_QuadLink_12Gb: return true;
1172 
1173  case VPIDStandard_483_576:
1175  case VPIDStandard_720:
1176  case VPIDStandard_1080:
1177  case VPIDStandard_720_3Ga:
1178  case VPIDStandard_1080_3Ga:
1179  case VPIDStandard_720_3Gb:
1180  case VPIDStandard_1080_3Gb:
1182  case VPIDStandard_VC2:
1201  default: break;
1202  }
1203  return false;
1204 }
1205 
1207 {
1208  switch (inStd)
1209  {
1217  case VPIDStandard_4320_QuadLink_12Gb: return true;
1218 
1224 // case VPIDStandard_483_576_360Mbs:
1236  case VPIDStandard_483_576:
1238  case VPIDStandard_720:
1239  case VPIDStandard_1080:
1240  case VPIDStandard_720_3Ga:
1241  case VPIDStandard_1080_3Ga:
1242  case VPIDStandard_720_3Gb:
1243  case VPIDStandard_1080_3Gb:
1245  case VPIDStandard_VC2:
1258  default: break;
1259  }
1260  return false;
1261 }
1262 
1264 {
1265  switch (inStd)
1266  {
1268  case VPIDStandard_1080_OctLink: return true;
1269 
1282 // case VPIDStandard_483_576_360Mbs:
1294  case VPIDStandard_483_576:
1296  case VPIDStandard_720:
1297  case VPIDStandard_1080:
1298  case VPIDStandard_720_3Ga:
1299  case VPIDStandard_1080_3Ga:
1300  case VPIDStandard_720_3Gb:
1301  case VPIDStandard_1080_3Gb:
1303  case VPIDStandard_VC2:
1315  default: break;
1316  }
1317  return false;
1318 }
1319 
1320 
1321 static const string sVPIDPictureRate[] = { "None", "Reserved1", "23.98", "24.00", "47.95", "25.00", "29.97", "30.00", "48.00", "50.00", "59.94", "60.00",
1322  "ReservedC", "ReservedD", "ReservedE", "ReservedF" };
1323 static const string sVPIDSampling[] = { "YCbCr 4:2:2", "YCbCr 4:4:4", "GBR 4:4:4", "YCbCr 4:2:0", "YCbCrA 4:2:2:4", "YCbCrA 4:4:4:4",
1324  "GBRA 4:4:4:4", "Reserved7", "YCbCrD 4:2:2:4", "YCbCrD 4:4:4:4", "GBRD 4:4:4:4", "ReservedB",
1325  "ReservedC", "ReservedD", "ReservedE", "XYZ 4:4:4" };
1326 static const string sVPIDChannel[] = { "1", "2", "3", "4", "5", "6", "7", "8" };
1327 static const string sVPIDDynamicRange[] = { "100", "200", "400", "Reserved3" };
1328 static const string sVPIDBitDepth[] = { "10 Full", "10", "12", "12 Full" };
1329 static const string sVPIDLink[] = { "1", "2", "3", "4", "5", "6", "7", "8" };
1330 static const string sVPIDAudio[] = { "Unknown", "Copied", "Additional", "Reserved" };
1331 static const string sVPIDTransfer[] = { "SDR", "HLG", "PQ", "Unspecified" };
1332 static const string sVPIDColorimetry[] = { "Rec709", "Reserved", "UHDTV", "Unknown" };
1333 static const string sVPIDLuminance[] = { "YCbCr", "ICtCp" };
1334 static const string sVPIDRGBRange[] = { "Narrow", "Full" };
1335 
1336 
1337 
1338 ostream & CNTV2VPID::Print (ostream & ostrm) const
1339 {
1340  ostrm << "VPID " << xHEX0N(m_uVPID,8)
1342  if (IsValid())
1343  ostrm << " " << CNTV2VPID::VPIDStandardToString(GetStandard())
1345  << " rate=" << sVPIDPictureRate[GetPictureRate()]
1346  << " samp=" << sVPIDSampling[GetSampling()]
1347  << " chan=" << sVPIDChannel[GetChannel()]
1348  << " links=" << (VPIDStandardIsSingleLink(GetStandard()) ? "1" : "mult")
1349  // << " dynRange=" << sVPIDDynamicRange[GetDynamicRange()]
1350  << " bitd=" << sVPIDBitDepth[GetBitDepth()]
1351  << " 3Ga=" << YesNo(IsStandard3Ga())
1352  << " tsi=" << YesNo(IsStandardTwoSampleInterleave())
1353  << " 16x9=" << YesNo(GetImageAspect16x9())
1354  << " xfer=" << sVPIDTransfer[GetTransferCharacteristics()]
1355  << " colo=" << sVPIDColorimetry[GetColorimetry()]
1356  << " lumi=" << sVPIDLuminance[GetLuminance()]
1357  << " rng=" << sVPIDRGBRange[GetRGBRange()];
1358  return ostrm;
1359 }
1360 
1361 ostream & CNTV2VPID::PrintPretty (ostream & ostrm) const
1362 {
1363  ostrm << "VPID " << xHEX0N(m_uVPID,8) << endl
1364  << "Version = " << CNTV2VPID::VPIDVersionToString(GetVersion()) << endl;
1365  if (IsValid())
1366  ostrm << "Standard = " << CNTV2VPID::VPIDStandardToString(GetStandard()) << endl
1367  << "Format = " << ::NTV2VideoFormatToString(GetVideoFormat()) << endl
1368  << "Frame Rate = " << sVPIDPictureRate[GetPictureRate()] << endl
1369  << "Sampling = " << sVPIDSampling[GetSampling()] << endl
1370  << "Channel = " << sVPIDChannel[GetChannel()] << endl
1371  << "Links = " << (VPIDStandardIsSingleLink(GetStandard()) ? "1" : "mult") << endl
1372  // << " dynRange=" << sVPIDDynamicRange[GetDynamicRange()] << endl
1373  << "Bit Depth =" << sVPIDBitDepth[GetBitDepth()] << endl
1374  << "3Ga= " << YesNo(IsStandard3Ga()) << endl
1375  << "TSI = " << YesNo(IsStandardTwoSampleInterleave()) << endl
1376  << "16x9 = " << YesNo(GetImageAspect16x9()) << endl
1377  << "Xfer Char = " << sVPIDTransfer[GetTransferCharacteristics()] << endl
1378  << "Colorimetry =" << sVPIDColorimetry[GetColorimetry()] << endl
1379  << "Luminance = " << sVPIDLuminance[GetLuminance()] << endl
1380  << "RGB Range = " << sVPIDRGBRange[GetRGBRange()] << endl;
1381  return ostrm;
1382 }
1383 
1384 #define YesOrNo(__x__) ((__x__) ? "Yes" : "No")
1385 
1387 {
1388  ostringstream hexConv; hexConv << xHEX0N(m_uVPID,8);
1389  AJASystemInfo::append(outInfo, "Raw Value", hexConv.str());
1391  if (!IsValid())
1392  return outInfo;
1394  AJASystemInfo::append(outInfo, "Video Format", ::NTV2VideoFormatToString(GetVideoFormat()));
1395  AJASystemInfo::append(outInfo, "Progressive Transport", YesOrNo(GetProgressiveTransport()));
1396  AJASystemInfo::append(outInfo, "Progressive Picture", YesOrNo(GetProgressivePicture()));
1397  AJASystemInfo::append(outInfo, "Frame Rate", sVPIDPictureRate[GetPictureRate()]);
1398  AJASystemInfo::append(outInfo, "Sampling", sVPIDSampling[GetSampling()]);
1399  AJASystemInfo::append(outInfo, "Channel", sVPIDChannel[GetChannel()]);
1400  AJASystemInfo::append(outInfo, "Links", VPIDStandardIsSingleLink(GetStandard()) ? "1" : "multiple");
1401 // AJASystemInfo::append(outInfo, "Dynamic Range", sVPIDDynamicRange[GetDynamicRange()]);
1402  AJASystemInfo::append(outInfo, "Bit Depth", sVPIDBitDepth[GetBitDepth()]);
1403  AJASystemInfo::append(outInfo, "3Ga", YesOrNo(IsStandard3Ga()));
1404  AJASystemInfo::append(outInfo, "Two Sample Interleave", YesOrNo(IsStandardTwoSampleInterleave()));
1405  AJASystemInfo::append(outInfo, "Aspect Ratio", GetImageAspect16x9() ? "16x9" : "4x3");
1406  AJASystemInfo::append(outInfo, "Xfer Characteristics", sVPIDTransfer[GetTransferCharacteristics()]);
1407  AJASystemInfo::append(outInfo, "Colorimetry", sVPIDColorimetry[GetColorimetry()]);
1408  AJASystemInfo::append(outInfo, "Luminance", sVPIDLuminance[GetLuminance()]);
1409  AJASystemInfo::append(outInfo, "RGB Range", sVPIDRGBRange[GetRGBRange()]);
1410  return outInfo;
1411 }
1412 
1413 string CNTV2VPID::AsString (const bool inTabular) const
1414 {
1415  if (inTabular)
1416  { AJALabelValuePairs table;
1417  return AJASystemInfo::ToString(GetInfo(table));
1418  }
1419  else
1420  { ostringstream oss;
1421  Print(oss);
1422  return oss.str();
1423  }
1424 }
1425 
1426 ostream & operator << (std::ostream & ostrm, const CNTV2VPID & inData)
1427 {
1428  return inData.Print(ostrm);
1429 }
VPIDBitDepth_12
@ VPIDBitDepth_12
Definition: ntv2enums.h:4086
VPIDStandard_1080_QuadLink
@ VPIDStandard_1080_QuadLink
Definition: ntv2enums.h:3988
NTV2_FORMAT_3840x2160p_6000
@ NTV2_FORMAT_3840x2160p_6000
Definition: ntv2enums.h:639
VPIDSampling_YUVA_4224
@ VPIDSampling_YUVA_4224
Definition: ntv2enums.h:4047
VPIDLink_2
@ VPIDLink_2
Definition: ntv2enums.h:4093
VPIDStandard_2160_Stereo_Quad_3Gb
@ VPIDStandard_2160_Stereo_Quad_3Gb
Definition: ntv2enums.h:3999
kRegMaskVPIDChannel
@ kRegMaskVPIDChannel
Definition: ntv2publicinterface.h:1958
VPIDBitDepth_10_Full
@ VPIDBitDepth_10_Full
Definition: ntv2enums.h:4084
NTV2_FORMAT_625_5000
@ NTV2_FORMAT_625_5000
Definition: ntv2enums.h:567
VPIDChannel_2
@ VPIDChannel_2
Definition: ntv2enums.h:4064
NTV2_FORMAT_4x1920x1080p_6000
@ NTV2_FORMAT_4x1920x1080p_6000
Definition: ntv2enums.h:603
VPIDStandard_1080_DualLink_3Gb
@ VPIDStandard_1080_DualLink_3Gb
Definition: ntv2enums.h:3982
NTV2_FORMAT_1080psf_2398
@ NTV2_FORMAT_1080psf_2398
Definition: ntv2enums.h:539
NTV2_IS_3G_FORMAT
#define NTV2_IS_3G_FORMAT(__f__)
Definition: ntv2enums.h:906
CNTV2VPID::DynamicRangeString
static const std::string DynamicRangeString(const VPIDDynamicRange range)
Definition: ntv2vpid.cpp:965
NTV2_FORMAT_4096x2160p_2400
@ NTV2_FORMAT_4096x2160p_2400
Definition: ntv2enums.h:648
VPIDLink_8
@ VPIDLink_8
Definition: ntv2enums.h:4099
NTV2_FBF_ARGB
@ NTV2_FBF_ARGB
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:215
CNTV2VPID::GetInfo
virtual AJALabelValuePairs & GetInfo(AJALabelValuePairs &outInfo) const
Definition: ntv2vpid.cpp:1386
NTV2_FORMAT_720p_5000
@ NTV2_FORMAT_720p_5000
Definition: ntv2enums.h:550
YesOrNo
#define YesOrNo(__x__)
Definition: ntv2vpid.cpp:1384
VPIDStandard
VPIDStandard
Definition: ntv2enums.h:3969
stTable7680p
static NTV2VideoFormat stTable7680p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:34
VPIDSpec::transferCharacteristics
NTV2VPIDTransferCharacteristics transferCharacteristics
Describes the transfer characteristics.
Definition: ntv2vpidfromspec.h:39
CNTV2VPID::SetSampling
virtual CNTV2VPID & SetSampling(const VPIDSampling inSampling)
Definition: ntv2vpid.cpp:401
sVPIDTransfer
static const string sVPIDTransfer[]
Definition: ntv2vpid.cpp:1331
VPIDSampling_ReservedC
@ VPIDSampling_ReservedC
Definition: ntv2enums.h:4055
NTV2_FORMAT_4x4096x2160p_4800
@ NTV2_FORMAT_4x4096x2160p_4800
Definition: ntv2enums.h:697
VPIDPictureRate_None
@ VPIDPictureRate_None
Definition: ntv2enums.h:4023
NTV2_FORMAT_4x4096x2160p_2398
@ NTV2_FORMAT_4x4096x2160p_2398
Definition: ntv2enums.h:691
NTV2_FORMAT_525_5994
@ NTV2_FORMAT_525_5994
Definition: ntv2enums.h:566
VPIDLink_5
@ VPIDLink_5
Definition: ntv2enums.h:4096
VPIDStandard_UHDTV2_Quad_OctaLink_10Gb
@ VPIDStandard_UHDTV2_Quad_OctaLink_10Gb
Definition: ntv2enums.h:4002
VPIDSpec::videoFormat
NTV2VideoFormat videoFormat
Specifies the format of the video stream.
Definition: ntv2vpidfromspec.h:24
VPIDStandard_1080_OctLink
@ VPIDStandard_1080_OctLink
Definition: ntv2enums.h:4000
stTable4096pTSI
static NTV2VideoFormat stTable4096pTSI[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:33
NTV2_FORMAT_4096x2160p_2500
@ NTV2_FORMAT_4096x2160p_2500
Definition: ntv2enums.h:649
VPIDStandard_FT_2048x1556_Dual
@ VPIDStandard_FT_2048x1556_Dual
Definition: ntv2enums.h:4009
VPIDStandard_VC2_Level65_270Mbs
@ VPIDStandard_VC2_Level65_270Mbs
Definition: ntv2enums.h:4007
kRegShiftVPIDProgressivePicture
@ kRegShiftVPIDProgressivePicture
Definition: ntv2publicinterface.h:3032
CNTV2VPID::GetRGBRange
virtual NTV2VPIDRGBRange GetRGBRange(void) const
Definition: ntv2vpid.cpp:561
NTV2_FORMAT_4x2048x1080p_4795
@ NTV2_FORMAT_4x2048x1080p_4795
Definition: ntv2enums.h:607
NTV2_FBF_10BIT_DPX_LE
@ NTV2_FBF_10BIT_DPX_LE
10-Bit DPX Little-Endian
Definition: ntv2enums.h:229
CNTV2VPID::SetProgressiveTransport
virtual CNTV2VPID & SetProgressiveTransport(const bool inIsProgressiveTransport)
Definition: ntv2vpid.cpp:324
CNTV2VPID::AudioString
static const std::string AudioString(const VPIDAudio audio)
Definition: ntv2vpid.cpp:1008
NTV2_ASSERT
#define NTV2_ASSERT(_expr_)
Definition: ajatypes.h:508
CNTV2VPID::StandardString
static const std::string StandardString(const VPIDStandard std)
Definition: ntv2vpid.cpp:842
NTV2_FORMAT_1080p_2K_6000_B
@ NTV2_FORMAT_1080p_2K_6000_B
Definition: ntv2enums.h:624
CNTV2VPID::VersionString
static const std::string VersionString(const VPIDVersion version)
Definition: ntv2vpid.cpp:831
NTV2_FBF_RGBA
@ NTV2_FBF_RGBA
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:216
NTV2_FORMAT_1080psf_2K_2398
@ NTV2_FORMAT_1080psf_2K_2398
Definition: ntv2enums.h:548
kRegMaskVPIDProgressivePicture
@ kRegMaskVPIDProgressivePicture
Definition: ntv2publicinterface.h:1969
VPIDStandard_1080_Stereo_3Gb
@ VPIDStandard_1080_Stereo_3Gb
Definition: ntv2enums.h:3987
sVPIDRGBRange
static const string sVPIDRGBRange[]
Definition: ntv2vpid.cpp:1334
NTV2_FORMAT_1080p_2K_4800_A
@ NTV2_FORMAT_1080p_2K_4800_A
Definition: ntv2enums.h:619
NTV2_FBF_48BIT_RGB
@ NTV2_FBF_48BIT_RGB
See 48-Bit RGB.
Definition: ntv2enums.h:230
kRegShiftVPIDProgressiveTransport
@ kRegShiftVPIDProgressiveTransport
Definition: ntv2publicinterface.h:3033
NTV2_FORMAT_1080i_5994
@ NTV2_FORMAT_1080i_5994
Definition: ntv2enums.h:535
VPIDPictureRate_4795
@ VPIDPictureRate_4795
Definition: ntv2enums.h:4027
NTV2VPIDXferChars
enum NTV2VPIDTransferCharacteristics NTV2VPIDXferChars
VPIDAudio_Unknown
@ VPIDAudio_Unknown
Definition: ntv2enums.h:4104
VPIDAudio_Copied
@ VPIDAudio_Copied
Definition: ntv2enums.h:4105
NTV2_FORMAT_4x1920x1080psf_3000
@ NTV2_FORMAT_4x1920x1080psf_3000
Definition: ntv2enums.h:596
VPIDSpec::isOutputLevelA
bool isOutputLevelA
If true, the video stream will leave the device as a level A signal.
Definition: ntv2vpidfromspec.h:27
NTV2VPIDLuminance
NTV2VPIDLuminance
Definition: ntv2enums.h:4214
VPID_ENUM_CASE_RETURN_STR
#define VPID_ENUM_CASE_RETURN_STR(enum_name)
Definition: ntv2vpid.cpp:829
kRegShiftVPIDColorimetry
@ kRegShiftVPIDColorimetry
Definition: ntv2publicinterface.h:3024
NTV2_FORMAT_1080p_2K_3000
@ NTV2_FORMAT_1080p_2K_3000
Definition: ntv2enums.h:616
VPIDDynamicRange_100
@ VPIDDynamicRange_100
Definition: ntv2enums.h:4075
NTV2_FORMAT_4x2048x1080p_2997
@ NTV2_FORMAT_4x2048x1080p_2997
Definition: ntv2enums.h:597
NTV2_FBF_10BIT_ARGB
@ NTV2_FBF_10BIT_ARGB
10-Bit ARGB
Definition: ntv2enums.h:235
VPIDPictureRate
VPIDPictureRate
Definition: ntv2enums.h:4021
NTV2_FORMAT_4x4096x2160p_2500
@ NTV2_FORMAT_4x4096x2160p_2500
Definition: ntv2enums.h:693
VPIDSpec::isTwoSampleInterleave
bool isTwoSampleInterleave
If true, the video stream is in SMPTE 425-3 two sample interleave format.
Definition: ntv2vpidfromspec.h:30
NTV2_FORMAT_4x4096x2160p_4795
@ NTV2_FORMAT_4x4096x2160p_4795
Definition: ntv2enums.h:696
NTV2_FORMAT_4x1920x1080p_2997
@ NTV2_FORMAT_4x1920x1080p_2997
Definition: ntv2enums.h:593
NTV2_FORMAT_4x1920x1080p_2500
@ NTV2_FORMAT_4x1920x1080p_2500
Definition: ntv2enums.h:586
CNTV2VPID::SetTransferCharacteristics
virtual CNTV2VPID & SetTransferCharacteristics(const NTV2VPIDXferChars inXferChars)
Definition: ntv2vpid.cpp:467
NTV2_FBF_INVALID
@ NTV2_FBF_INVALID
Definition: ntv2enums.h:248
NTV2_FORMAT_4x2048x1080p_4800
@ NTV2_FORMAT_4x2048x1080p_4800
Definition: ntv2enums.h:608
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:210
NTV2_FORMAT_4x3840x2160p_2500
@ NTV2_FORMAT_4x3840x2160p_2500
Definition: ntv2enums.h:680
stTablesInitialized
static bool stTablesInitialized(false)
sVPIDAudio
static const string sVPIDAudio[]
Definition: ntv2vpid.cpp:1330
VPIDSampling_GBRD_4444
@ VPIDSampling_GBRD_4444
Definition: ntv2enums.h:4053
CNTV2VPID::GetSampling
virtual VPIDSampling GetSampling(void) const
Definition: ntv2vpid.cpp:409
CNTV2VPID::GetBitDepth
virtual VPIDBitDepth GetBitDepth(void) const
Definition: ntv2vpid.cpp:462
CNTV2VPID::PrintPretty
virtual std::ostream & PrintPretty(std::ostream &ostrm) const
Definition: ntv2vpid.cpp:1361
CNTV2VPID::SetImageAspect16x9
virtual CNTV2VPID & SetImageAspect16x9(const bool inIs16x9Aspect)
Definition: ntv2vpid.cpp:365
CNTV2VPID::GetPictureRate
virtual VPIDPictureRate GetPictureRate(void) const
Definition: ntv2vpid.cpp:359
CNTV2VPID::VPIDStandardIsQuadLink
static bool VPIDStandardIsQuadLink(const VPIDStandard inStd)
Definition: ntv2vpid.cpp:1206
NTV2_FBF_10BIT_DPX
@ NTV2_FBF_10BIT_DPX
See 10-Bit RGB - DPX Format.
Definition: ntv2enums.h:221
VPIDStandard_1080_3Gb
@ VPIDStandard_1080_3Gb
Definition: ntv2enums.h:3984
VPIDStandard_483_576_3Gb
@ VPIDStandard_483_576_3Gb
Definition: ntv2enums.h:3985
CNTV2VPID::GetProgressivePicture
virtual bool GetProgressivePicture(void) const
Definition: ntv2vpid.cpp:346
VPIDSpec::luminance
NTV2VPIDLuminance luminance
Describes the luminance and color difference.
Definition: ntv2vpidfromspec.h:41
stTable3840pSID
static NTV2VideoFormat stTable3840pSID[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:28
stTable2048i
static NTV2VideoFormat stTable2048i[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:26
kRegMaskVPIDDualLinkChannel
@ kRegMaskVPIDDualLinkChannel
Definition: ntv2publicinterface.h:1959
stTable4096psfSID
static NTV2VideoFormat stTable4096psfSID[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:31
VPIDSpec::isStereo
bool isStereo
If true, the video stream is part of a stereo pair.
Definition: ntv2vpidfromspec.h:33
VPIDPictureRate_2400
@ VPIDPictureRate_2400
Definition: ntv2enums.h:4026
sVPIDLink
static const string sVPIDLink[]
Definition: ntv2vpid.cpp:1329
CNTV2VPID::GetVersion
virtual VPIDVersion GetVersion(void) const
Definition: ntv2vpid.cpp:304
ntv2debug.h
NTV2_FORMAT_4x3840x2160p_2398
@ NTV2_FORMAT_4x3840x2160p_2398
Definition: ntv2enums.h:678
VPIDChannel_3
@ VPIDChannel_3
Definition: ntv2enums.h:4065
NTV2_FBF_24BIT_RGB
@ NTV2_FBF_24BIT_RGB
See 24-Bit RGB.
Definition: ntv2enums.h:226
VPIDStandard_720_3Gb
@ VPIDStandard_720_3Gb
Definition: ntv2enums.h:3983
VPIDSampling_ReservedE
@ VPIDSampling_ReservedE
Definition: ntv2enums.h:4057
CNTV2VPID::SetVersion
virtual CNTV2VPID & SetVersion(const VPIDVersion inVersion)
Definition: ntv2vpid.cpp:296
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
NTV2_FORMAT_1080p_2K_4795_A
@ NTV2_FORMAT_1080p_2K_4795_A
Definition: ntv2enums.h:618
NTV2_FORMAT_3840x2160p_2500
@ NTV2_FORMAT_3840x2160p_2500
Definition: ntv2enums.h:632
kRegMaskVPIDPictureRate
@ kRegMaskVPIDPictureRate
Definition: ntv2publicinterface.h:1967
VPIDStandard_2160_DualLink
@ VPIDStandard_2160_DualLink
Definition: ntv2enums.h:3994
kRegShiftVPIDChannel
@ kRegShiftVPIDChannel
Definition: ntv2publicinterface.h:3022
VPIDStandard_1080_Dual_3Gb
@ VPIDStandard_1080_Dual_3Gb
Definition: ntv2enums.h:3993
kRegShiftVPIDImageAspect16x9
@ kRegShiftVPIDImageAspect16x9
Definition: ntv2publicinterface.h:3029
VPIDSpec
Contains all the information needed to generate a valid VPID.
Definition: ntv2vpidfromspec.h:22
NTV2_FORMAT_4x4096x2160p_2997
@ NTV2_FORMAT_4x4096x2160p_2997
Definition: ntv2enums.h:694
kRegMaskVPIDImageAspect16x9Alt
@ kRegMaskVPIDImageAspect16x9Alt
Definition: ntv2publicinterface.h:1963
kRegMaskVPIDBitDepth
@ kRegMaskVPIDBitDepth
Definition: ntv2publicinterface.h:1956
CNTV2VPID::GetTransferCharacteristics
virtual NTV2VPIDXferChars GetTransferCharacteristics(void) const
Definition: ntv2vpid.cpp:475
VPIDPictureRate_4800
@ VPIDPictureRate_4800
Definition: ntv2enums.h:4031
VPIDPictureRate_Reserved1
@ VPIDPictureRate_Reserved1
Definition: ntv2enums.h:4024
ntv2vpidfromspec.h
Declares functions for the C implementations of VPID generation from a VPIDSpec.
kRegMaskVPIDStandard
@ kRegMaskVPIDStandard
Definition: ntv2publicinterface.h:1971
VPIDSpec::vpidChannel
VPIDChannel vpidChannel
Specifies the channel number of the video stream.
Definition: ntv2vpidfromspec.h:32
VPIDSampling_YUV_422
@ VPIDSampling_YUV_422
Definition: ntv2enums.h:4043
VPIDStandard_483_576
@ VPIDStandard_483_576
Definition: ntv2enums.h:3972
NTV2_FORMAT_4x2048x1080psf_2398
@ NTV2_FORMAT_4x2048x1080psf_2398
Definition: ntv2enums.h:587
NTV2_FBF_10BIT_RGB_PACKED
@ NTV2_FBF_10BIT_RGB_PACKED
10-Bit Packed RGB
Definition: ntv2enums.h:234
CNTV2VPID::AsString
virtual std::string AsString(const bool inTabular=false) const
Definition: ntv2vpid.cpp:1413
NTV2_FORMAT_4x2048x1080p_2398
@ NTV2_FORMAT_4x2048x1080p_2398
Definition: ntv2enums.h:590
stTable1920p
static NTV2VideoFormat stTable1920p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:23
VPIDStandard_1080_Stereo_Quad_3Gb
@ VPIDStandard_1080_Stereo_Quad_3Gb
Definition: ntv2enums.h:3998
SetVPIDFromSpec
bool SetVPIDFromSpec(ULWord *const pOutVPID, const VPIDSpec *const pInVPIDSpec)
Generates a VPID based on the supplied specification.
Definition: ntv2vpidfromspec.cpp:27
CNTV2VPID::BitDepthString
static const std::string BitDepthString(const VPIDBitDepth depth)
Definition: ntv2vpid.cpp:978
VPIDVersion_1
@ VPIDVersion_1
Definition: ntv2enums.h:3966
VPIDSampling_YUVA_4444
@ VPIDSampling_YUVA_4444
Definition: ntv2enums.h:4048
NTV2_FORMAT_1080psf_2K_2500
@ NTV2_FORMAT_1080psf_2K_2500
Definition: ntv2enums.h:560
NTV2_FORMAT_4x2048x1080psf_2400
@ NTV2_FORMAT_4x2048x1080psf_2400
Definition: ntv2enums.h:588
VPIDStandard_UHDTV1_MultiLink_10Gb
@ VPIDStandard_UHDTV1_MultiLink_10Gb
Definition: ntv2enums.h:4003
CNTV2VPID::VPIDStandardToString
static const std::string VPIDStandardToString(const VPIDStandard inStd)
Definition: ntv2vpid.cpp:1034
NTV2_FORMAT_1080p_5994_B
@ NTV2_FORMAT_1080p_5994_B
Definition: ntv2enums.h:552
VPIDPictureRate_2398
@ VPIDPictureRate_2398
Definition: ntv2enums.h:4025
NTV2_FORMAT_1080psf_3000_2
@ NTV2_FORMAT_1080psf_3000_2
Definition: ntv2enums.h:563
NTV2_FORMAT_1080p_2K_2400
@ NTV2_FORMAT_1080p_2K_2400
Definition: ntv2enums.h:547
VPIDStandard_4320_DualLink_12Gb
@ VPIDStandard_4320_DualLink_12Gb
Definition: ntv2enums.h:4016
CNTV2VPID::SetVPIDData
static bool SetVPIDData(ULWord &outVPID, const NTV2VideoFormat inOutputFormat, const NTV2FrameBufferFormat inFrameBufferFormat, const bool inIsProgressive, const bool inIs16x9Aspect, const VPIDChannel inVPIDChannel, const bool inUseVPIDChannel=true)
Definition: ntv2vpid.cpp:578
NTV2_FORMAT_4x2048x1080p_3000
@ NTV2_FORMAT_4x2048x1080p_3000
Definition: ntv2enums.h:598
VPIDSpec::isOutputLevelB
bool isOutputLevelB
If true, the video stream will leave the device as a level B signal.
Definition: ntv2vpidfromspec.h:28
NTV2_FORMAT_4096x2160p_4795
@ NTV2_FORMAT_4096x2160p_4795
Definition: ntv2enums.h:654
VPIDStandard_1080
@ VPIDStandard_1080
Definition: ntv2enums.h:3977
VPIDChannel_5
@ VPIDChannel_5
Definition: ntv2enums.h:4067
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
VPIDSampling_YUV_420
@ VPIDSampling_YUV_420
Definition: ntv2enums.h:4046
NTV2_FORMAT_4x4096x2160p_3000
@ NTV2_FORMAT_4x4096x2160p_3000
Definition: ntv2enums.h:695
AJASystemInfo::append
static AJALabelValuePairs & append(AJALabelValuePairs &inOutTable, const std::string &inLabel, const std::string &inValue=std::string())
A convenience function that appends the given label and value strings to the provided AJALabelValuePa...
Definition: info.h:168
kRegShiftVPIDBitDepth
@ kRegShiftVPIDBitDepth
Definition: ntv2publicinterface.h:3019
VPIDStandard_4K_DCPIF_FSW709_10Gbs
@ VPIDStandard_4K_DCPIF_FSW709_10Gbs
Definition: ntv2enums.h:4008
VPIDSampling_Reserved7
@ VPIDSampling_Reserved7
Definition: ntv2enums.h:4050
NTV2_FORMAT_4x2048x1080psf_3000
@ NTV2_FORMAT_4x2048x1080psf_3000
Definition: ntv2enums.h:600
VPIDStandard_1080_AFR_Single_6Gb
@ VPIDStandard_1080_AFR_Single_6Gb
Definition: ntv2enums.h:4013
NTV2_FORMAT_1080p_2997
@ NTV2_FORMAT_1080p_2997
Definition: ntv2enums.h:541
stTable4096pSID
static NTV2VideoFormat stTable4096pSID[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:29
NTV2_FORMAT_1080p_2K_4795_B
@ NTV2_FORMAT_1080p_2K_4795_B
Definition: ntv2enums.h:620
kRegShiftVPIDColorimetryAltLow
@ kRegShiftVPIDColorimetryAltLow
Definition: ntv2publicinterface.h:3025
kRegMaskVPIDSampling
@ kRegMaskVPIDSampling
Definition: ntv2publicinterface.h:1960
CNTV2VPID
A convenience class that simplifies encoding or decoding the 4-byte VPID payload that can be read or ...
Definition: ntv2vpid.h:23
VPIDStandard_UHDTV1_Single_DualLink_10Gb
@ VPIDStandard_UHDTV1_Single_DualLink_10Gb
Definition: ntv2enums.h:4001
VPIDPictureRate_2997
@ VPIDPictureRate_2997
Definition: ntv2enums.h:4029
NTV2_FORMAT_1080p_3000
@ NTV2_FORMAT_1080p_3000
Definition: ntv2enums.h:542
stTable3840psfSID
static NTV2VideoFormat stTable3840psfSID[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:30
NTV2_FORMAT_4x3840x2160p_5994
@ NTV2_FORMAT_4x3840x2160p_5994
Definition: ntv2enums.h:684
NTV2_FORMAT_4096x2160p_2398
@ NTV2_FORMAT_4096x2160p_2398
Definition: ntv2enums.h:647
stTable1920i
static NTV2VideoFormat stTable1920i[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:27
kRegMaskVPIDColorimetry
@ kRegMaskVPIDColorimetry
Definition: ntv2publicinterface.h:1961
NTV2_FORMAT_720p_6000
@ NTV2_FORMAT_720p_6000
Definition: ntv2enums.h:538
VPIDStandard_2160_QuadLink_3Ga
@ VPIDStandard_2160_QuadLink_3Ga
Definition: ntv2enums.h:3995
NTV2_VPID_Range_Full
@ NTV2_VPID_Range_Full
Definition: ntv2enums.h:4223
NTV2_FORMAT_1080p_2500
@ NTV2_FORMAT_1080p_2500
Definition: ntv2enums.h:543
VPIDStandard_483_576_DualLink
@ VPIDStandard_483_576_DualLink
Definition: ntv2enums.h:3973
CNTV2VPID::SetChannel
virtual CNTV2VPID & SetChannel(const VPIDChannel inChannel)
Definition: ntv2vpid.cpp:426
sVPIDDynamicRange
static const string sVPIDDynamicRange[]
Definition: ntv2vpid.cpp:1327
VPIDBitDepth
VPIDBitDepth
Definition: ntv2enums.h:4081
AJASystemInfo::ToString
virtual void ToString(std::string &outAllLabelsAndValues) const
Answers with a multi-line string that contains the complete host system info table.
CNTV2VPID::GetColorimetry
virtual NTV2VPIDColorimetry GetColorimetry(void) const
Definition: ntv2vpid.cpp:506
CNTV2VPID::Print
virtual std::ostream & Print(std::ostream &ostrm) const
Definition: ntv2vpid.cpp:1338
NTV2_FORMAT_4x2048x1080p_5000
@ NTV2_FORMAT_4x2048x1080p_5000
Definition: ntv2enums.h:604
kRegShiftVPIDColorimetryAltHigh
@ kRegShiftVPIDColorimetryAltHigh
Definition: ntv2publicinterface.h:3028
NTV2_FBF_24BIT_BGR
@ NTV2_FBF_24BIT_BGR
See 24-Bit BGR.
Definition: ntv2enums.h:227
VPIDAudio_Reserved
@ VPIDAudio_Reserved
Definition: ntv2enums.h:4107
NTV2_FORMAT_4096x2160p_6000
@ NTV2_FORMAT_4096x2160p_6000
Definition: ntv2enums.h:658
kRegShiftVPIDXferChars
@ kRegShiftVPIDXferChars
Definition: ntv2publicinterface.h:3031
CNTV2VPID::VPIDStandardIsOctLink
static bool VPIDStandardIsOctLink(const VPIDStandard inStd)
Definition: ntv2vpid.cpp:1263
VPIDStandard_720_1080_Stereo
@ VPIDStandard_720_1080_Stereo
Definition: ntv2enums.h:4006
VPIDTableInitializer::VPIDTableInitializer
VPIDTableInitializer()
Definition: ntv2vpid.cpp:41
VPIDLink_1
@ VPIDLink_1
Definition: ntv2enums.h:4092
NTV2_FORMAT_4x1920x1080p_3000
@ NTV2_FORMAT_4x1920x1080p_3000
Definition: ntv2enums.h:594
NTV2_FORMAT_4x3840x2160p_2997
@ NTV2_FORMAT_4x3840x2160p_2997
Definition: ntv2enums.h:681
VPIDPictureRate_ReservedD
@ VPIDPictureRate_ReservedD
Definition: ntv2enums.h:4036
CNTV2VPID::SamplingString
static const std::string SamplingString(const VPIDSampling sample)
Definition: ntv2vpid.cpp:923
kRegMaskVPIDVersionID
@ kRegMaskVPIDVersionID
Definition: ntv2publicinterface.h:1972
ntv2utils.h
Declares numerous NTV2 utility functions.
operator<<
ostream & operator<<(std::ostream &ostrm, const CNTV2VPID &inData)
Definition: ntv2vpid.cpp:1426
NTV2_FORMAT_1080p_5000_B
@ NTV2_FORMAT_1080p_5000_B
Definition: ntv2enums.h:551
kRegShiftVPIDStandard
@ kRegShiftVPIDStandard
Definition: ntv2publicinterface.h:3034
YesNo
#define YesNo(__x__)
Definition: ntv2registerexpert.h:25
VPIDStandard_4320_QuadLink_12Gb
@ VPIDStandard_4320_QuadLink_12Gb
Definition: ntv2enums.h:4018
NTV2VideoFormatToString
std::string NTV2VideoFormatToString(const NTV2VideoFormat inValue, const bool inUseFrameRate=false)
Definition: ntv2utils.cpp:6793
NTV2_IS_372_DUALLINK_FORMAT
#define NTV2_IS_372_DUALLINK_FORMAT(__f__)
Definition: ntv2enums.h:880
NTV2_FORMAT_4x3840x2160p_5000
@ NTV2_FORMAT_4x3840x2160p_5000
Definition: ntv2enums.h:683
NTV2_FORMAT_1080p_2K_5994_A
@ NTV2_FORMAT_1080p_2K_5994_A
Definition: ntv2enums.h:614
VPIDStandard_2160_Single_12Gb
@ VPIDStandard_2160_Single_12Gb
Definition: ntv2enums.h:4014
VPIDStandard_1080_Stereo_3Ga
@ VPIDStandard_1080_Stereo_3Ga
Definition: ntv2enums.h:3990
VPIDStandard_1080_Stereo_Quad_3Ga
@ VPIDStandard_1080_Stereo_Quad_3Ga
Definition: ntv2enums.h:3997
VPIDStandard_FT_2048x1556_3Gb
@ VPIDStandard_FT_2048x1556_3Gb
Definition: ntv2enums.h:4010
VPIDStandard_483_576_1485Mbs
@ VPIDStandard_483_576_1485Mbs
Definition: ntv2enums.h:3978
CNTV2VPID::SetLuminance
virtual CNTV2VPID & SetLuminance(const NTV2VPIDLuminance inLuminance)
Definition: ntv2vpid.cpp:525
VPIDSampling_GBRA_4444
@ VPIDSampling_GBRA_4444
Definition: ntv2enums.h:4049
VPIDStandard_2160_DualLink_12Gb
@ VPIDStandard_2160_DualLink_12Gb
Definition: ntv2enums.h:4017
NTV2_FORMAT_1080p_2K_2500
@ NTV2_FORMAT_1080p_2K_2500
Definition: ntv2enums.h:559
VPIDStandard_720_3Ga
@ VPIDStandard_720_3Ga
Definition: ntv2enums.h:3980
VPIDStandard_1080_Single_6Gb
@ VPIDStandard_1080_Single_6Gb
Definition: ntv2enums.h:4012
VPIDStandard_1080_Dual_3Ga
@ VPIDStandard_1080_Dual_3Ga
Definition: ntv2enums.h:3992
NTV2_FORMAT_4x1920x1080psf_2997
@ NTV2_FORMAT_4x1920x1080psf_2997
Definition: ntv2enums.h:595
stTable720p
static NTV2VideoFormat stTable720p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:21
VPIDSampling
VPIDSampling
Definition: ntv2enums.h:4041
NTV2_FORMAT_1080p_6000_A
@ NTV2_FORMAT_1080p_6000_A
Definition: ntv2enums.h:558
VPIDStandard_1080_3Ga
@ VPIDStandard_1080_3Ga
Definition: ntv2enums.h:3981
CNTV2VPID::LinkString
static const std::string LinkString(const VPIDLink link)
Definition: ntv2vpid.cpp:991
kRegMaskVPIDXferChars
@ kRegMaskVPIDXferChars
Definition: ntv2publicinterface.h:1968
VPIDChannel_6
@ VPIDChannel_6
Definition: ntv2enums.h:4068
NTV2_FORMAT_1080p_2K_2398
@ NTV2_FORMAT_1080p_2K_2398
Definition: ntv2enums.h:546
NTV2_FORMAT_3840x2160p_2997
@ NTV2_FORMAT_3840x2160p_2997
Definition: ntv2enums.h:633
NTV2_FORMAT_4096x2160p_4800
@ NTV2_FORMAT_4096x2160p_4800
Definition: ntv2enums.h:655
NTV2_FORMAT_1080p_2398
@ NTV2_FORMAT_1080p_2398
Definition: ntv2enums.h:544
VPIDStandard_2160_Single_6Gb
@ VPIDStandard_2160_Single_6Gb
Definition: ntv2enums.h:4011
CNTV2VPID::SetBitDepth
virtual CNTV2VPID & SetBitDepth(const VPIDBitDepth inBitDepth)
Definition: ntv2vpid.cpp:454
VPIDStandard_2160_QuadDualLink_3Gb
@ VPIDStandard_2160_QuadDualLink_3Gb
Definition: ntv2enums.h:3996
NTV2_FORMAT_1080psf_2K_2400
@ NTV2_FORMAT_1080psf_2K_2400
Definition: ntv2enums.h:549
kRegMaskVPIDColorimetryAltHigh
@ kRegMaskVPIDColorimetryAltHigh
Definition: ntv2publicinterface.h:1965
VPIDChannel_8
@ VPIDChannel_8
Definition: ntv2enums.h:4070
CNTV2VPID::CNTV2VPID
CNTV2VPID(const ULWord inData=0)
Definition: ntv2vpid.cpp:206
NTV2_FORMAT_3840x2160p_5994
@ NTV2_FORMAT_3840x2160p_5994
Definition: ntv2enums.h:638
NTV2_FORMAT_4x4096x2160p_2400
@ NTV2_FORMAT_4x4096x2160p_2400
Definition: ntv2enums.h:692
VPIDStandard_1080_10_12_AFR_Single_12Gb
@ VPIDStandard_1080_10_12_AFR_Single_12Gb
Definition: ntv2enums.h:4015
NTV2_FORMAT_4x4096x2160p_6000
@ NTV2_FORMAT_4x4096x2160p_6000
Definition: ntv2enums.h:700
NTV2_FORMAT_3840x2160p_2398
@ NTV2_FORMAT_3840x2160p_2398
Definition: ntv2enums.h:630
VPIDPictureRate_5994
@ VPIDPictureRate_5994
Definition: ntv2enums.h:4033
CNTV2VPID::IsStandardTwoSampleInterleave
virtual bool IsStandardTwoSampleInterleave(void) const
Definition: ntv2vpid.cpp:281
kRegmaskVPIDLuminance
@ kRegmaskVPIDLuminance
Definition: ntv2publicinterface.h:1957
VPIDVersion_0
@ VPIDVersion_0
Definition: ntv2enums.h:3965
NTV2VPIDColorimetry
NTV2VPIDColorimetry
Definition: ntv2enums.h:4206
kRegMaskVPIDColorimetryAltLow
@ kRegMaskVPIDColorimetryAltLow
Definition: ntv2publicinterface.h:1962
NTV2_FORMAT_UNKNOWN
@ NTV2_FORMAT_UNKNOWN
Definition: ntv2enums.h:521
NTV2_FORMAT_4x1920x1080psf_2398
@ NTV2_FORMAT_4x1920x1080psf_2398
Definition: ntv2enums.h:581
VPIDChannel_1
@ VPIDChannel_1
Definition: ntv2enums.h:4063
CNTV2VPID::SetPictureRate
virtual CNTV2VPID & SetPictureRate(const VPIDPictureRate inPictureRate)
Definition: ntv2vpid.cpp:352
NTV2_FORMAT_1080p_2K_6000_A
@ NTV2_FORMAT_1080p_2K_6000_A
Definition: ntv2enums.h:613
ntv2vpid.h
Declares the CNTV2VPID class. See SMPTE 352 standard for details.
VPIDSpec::isDualLink
bool isDualLink
If true, the video stream is part of a SMPTE 372 dual link signal.
Definition: ntv2vpidfromspec.h:29
CNTV2VPID::GetImageAspect16x9
virtual bool GetImageAspect16x9(void) const
Definition: ntv2vpid.cpp:386
VPIDSpec::isRightEye
bool isRightEye
If true, the video stream is the right eye of a stereo pair.
Definition: ntv2vpidfromspec.h:34
NTV2_FORMAT_4096x2160p_3000
@ NTV2_FORMAT_4096x2160p_3000
Definition: ntv2enums.h:651
stTable2048p
static NTV2VideoFormat stTable2048p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:22
VPIDVersion
VPIDVersion
Definition: ntv2enums.h:3963
VPIDSpec::isOutput12G
bool isOutput12G
If true, the transport on the wire is 12G.
Definition: ntv2vpidfromspec.h:37
NTV2_FORMAT_4x1920x1080psf_2500
@ NTV2_FORMAT_4x1920x1080psf_2500
Definition: ntv2enums.h:583
sVPIDPictureRate
static const string sVPIDPictureRate[]
Definition: ntv2vpid.cpp:1321
CNTV2VPID::PictureRateString
static const std::string PictureRateString(const VPIDPictureRate rate)
Definition: ntv2vpid.cpp:898
NTV2_FORMAT_4x3840x2160p_2400
@ NTV2_FORMAT_4x3840x2160p_2400
Definition: ntv2enums.h:679
VPIDLink_7
@ VPIDLink_7
Definition: ntv2enums.h:4098
VPIDSampling_XYZ_444
@ VPIDSampling_XYZ_444
Definition: ntv2enums.h:4058
CNTV2VPID::ChannelString
static const std::string ChannelString(const VPIDChannel chan)
Definition: ntv2vpid.cpp:948
NTV2_FORMAT_4x2048x1080p_2500
@ NTV2_FORMAT_4x2048x1080p_2500
Definition: ntv2enums.h:592
NTV2_FORMAT_4x1920x1080p_5994
@ NTV2_FORMAT_4x1920x1080p_5994
Definition: ntv2enums.h:602
NTV2_FORMAT_720p_2398
@ NTV2_FORMAT_720p_2398
Definition: ntv2enums.h:554
NTV2_FORMAT_4x4096x2160p_5000
@ NTV2_FORMAT_4x4096x2160p_5000
Definition: ntv2enums.h:698
VPIDPictureRate_3000
@ VPIDPictureRate_3000
Definition: ntv2enums.h:4030
NTV2_FORMAT_4x3840x2160p_6000
@ NTV2_FORMAT_4x3840x2160p_6000
Definition: ntv2enums.h:685
VPIDSpec::rgbRange
NTV2VPIDRGBRange rgbRange
Describes the RGB range as full or SMPTE.
Definition: ntv2vpidfromspec.h:42
VPIDStandard_720_Stereo_3Ga
@ VPIDStandard_720_Stereo_3Ga
Definition: ntv2enums.h:3989
kRegShiftVPIDSampling
@ kRegShiftVPIDSampling
Definition: ntv2publicinterface.h:3023
kRegShiftVPIDDualLinkChannel
@ kRegShiftVPIDDualLinkChannel
Definition: ntv2publicinterface.h:3021
VPIDBitDepth_10
@ VPIDBitDepth_10
Definition: ntv2enums.h:4085
CNTV2VPID::GetVideoFormat
virtual NTV2VideoFormat GetVideoFormat(void) const
Definition: ntv2vpid.cpp:674
VPIDAudio
VPIDAudio
Definition: ntv2enums.h:4102
CNTV2VPID::SetRGBRange
virtual CNTV2VPID & SetRGBRange(const NTV2VPIDRGBRange inRGBRange)
Definition: ntv2vpid.cpp:538
kRegShiftVPIDLuminance
@ kRegShiftVPIDLuminance
Definition: ntv2publicinterface.h:3020
std
Definition: json.hpp:5362
VPIDSpec::pixelFormat
NTV2FrameBufferFormat pixelFormat
Specifies the pixel format of the source of the video stream.
Definition: ntv2vpidfromspec.h:25
NTV2_FORMAT_1080p_5000_A
@ NTV2_FORMAT_1080p_5000_A
Definition: ntv2enums.h:556
NTV2_FORMAT_4x2048x1080p_6000
@ NTV2_FORMAT_4x2048x1080p_6000
Definition: ntv2enums.h:606
VPIDLink_6
@ VPIDLink_6
Definition: ntv2enums.h:4097
kRegMaskVPIDImageAspect16x9
@ kRegMaskVPIDImageAspect16x9
Definition: ntv2publicinterface.h:1966
NTV2_VPID_Range_Narrow
@ NTV2_VPID_Range_Narrow
Definition: ntv2enums.h:4222
NTV2VideoFormat
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
CNTV2VPID::SetProgressivePicture
virtual CNTV2VPID & SetProgressivePicture(const bool inIsProgressivePicture)
Definition: ntv2vpid.cpp:338
NTV2_FORMAT_4096x2160p_5000
@ NTV2_FORMAT_4096x2160p_5000
Definition: ntv2enums.h:656
VPIDSpec::colorimetry
NTV2VPIDColorimetry colorimetry
Describes the Colorimetry.
Definition: ntv2vpidfromspec.h:40
NTV2_FORMAT_1080i_5000
@ NTV2_FORMAT_1080i_5000
Definition: ntv2enums.h:534
VPIDSpec::isRGBOnWire
bool isRGBOnWire
If true, the transport on the wire is RGB.
Definition: ntv2vpidfromspec.h:26
CNTV2VPID::GetProgressiveTransport
virtual bool GetProgressiveTransport(void) const
Definition: ntv2vpid.cpp:332
VPIDLink_4
@ VPIDLink_4
Definition: ntv2enums.h:4095
CNTV2VPID::IsRGBSampling
virtual bool IsRGBSampling(void) const
Definition: ntv2vpid.cpp:414
NTV2_FORMAT_4x1920x1080p_5000
@ NTV2_FORMAT_4x1920x1080p_5000
Definition: ntv2enums.h:601
VPIDSampling_GBR_444
@ VPIDSampling_GBR_444
Definition: ntv2enums.h:4045
NTV2_FORMAT_4x1920x1080p_2398
@ NTV2_FORMAT_4x1920x1080p_2398
Definition: ntv2enums.h:584
NTV2_FORMAT_1080p_6000_B
@ NTV2_FORMAT_1080p_6000_B
Definition: ntv2enums.h:553
CNTV2VPID::GetChannel
virtual VPIDChannel GetChannel(void) const
Definition: ntv2vpid.cpp:434
VPIDStandard_1080_DualLink
@ VPIDStandard_1080_DualLink
Definition: ntv2enums.h:3979
sVPIDBitDepth
static const string sVPIDBitDepth[]
Definition: ntv2vpid.cpp:1328
VPIDPictureRate_2500
@ VPIDPictureRate_2500
Definition: ntv2enums.h:4028
VPIDStandard_720_Stereo_3Gb
@ VPIDStandard_720_Stereo_3Gb
Definition: ntv2enums.h:3986
NTV2_FORMAT_4096x2160p_2997
@ NTV2_FORMAT_4096x2160p_2997
Definition: ntv2enums.h:650
kRegShiftVPIDImageAspect16x9Alt
@ kRegShiftVPIDImageAspect16x9Alt
Definition: ntv2publicinterface.h:3026
VPIDSampling_ReservedB
@ VPIDSampling_ReservedB
Definition: ntv2enums.h:4054
VPIDDynamicRange_Reserved3
@ VPIDDynamicRange_Reserved3
Definition: ntv2enums.h:4078
CNTV2VPID::VPIDStandardIsSingleLink
static bool VPIDStandardIsSingleLink(const VPIDStandard inStd)
Definition: ntv2vpid.cpp:1092
NTV2_FORMAT_1080p_5994_A
@ NTV2_FORMAT_1080p_5994_A
Definition: ntv2enums.h:557
sVPIDChannel
static const string sVPIDChannel[]
Definition: ntv2vpid.cpp:1326
stTable1920psf
static NTV2VideoFormat stTable1920psf[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:25
NTV2_FORMAT_4x2048x1080p_5994
@ NTV2_FORMAT_4x2048x1080p_5994
Definition: ntv2enums.h:605
VPIDChannel_4
@ VPIDChannel_4
Definition: ntv2enums.h:4066
kRegMaskVPIDHorizontalSampling
@ kRegMaskVPIDHorizontalSampling
Definition: ntv2publicinterface.h:1964
VPIDSpec::isOutput6G
bool isOutput6G
If true, the transport on the wire is 6G.
Definition: ntv2vpidfromspec.h:36
NTV2VPIDRGBRange
NTV2VPIDRGBRange
Definition: ntv2enums.h:4220
stTable8192p
static NTV2VideoFormat stTable8192p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:35
stTable3840pTSI
static NTV2VideoFormat stTable3840pTSI[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:32
CNTV2VPID::SetVPID
virtual CNTV2VPID & SetVPID(const ULWord inData)
Definition: ntv2vpid.h:71
gVPIDTableInitializer
static VPIDTableInitializer gVPIDTableInitializer
Definition: ntv2vpid.cpp:203
VPIDSampling_ReservedD
@ VPIDSampling_ReservedD
Definition: ntv2enums.h:4056
NTV2_FORMAT_4x3840x2160p_3000
@ NTV2_FORMAT_4x3840x2160p_3000
Definition: ntv2enums.h:682
CNTV2VPID::SetDualLinkChannel
virtual CNTV2VPID & SetDualLinkChannel(const VPIDChannel inChannel)
Definition: ntv2vpid.cpp:440
VPIDDynamicRange_400
@ VPIDDynamicRange_400
Definition: ntv2enums.h:4077
NTV2_FORMAT_1080p_2K_5994_B
@ NTV2_FORMAT_1080p_2K_5994_B
Definition: ntv2enums.h:623
NTV2_FBF_16BIT_ARGB
@ NTV2_FBF_16BIT_ARGB
16-Bit ARGB
Definition: ntv2enums.h:236
CNTV2VPID::SetStandard
virtual CNTV2VPID & SetStandard(const VPIDStandard inStandard)
Definition: ntv2vpid.cpp:310
stTable2048psf
static NTV2VideoFormat stTable2048psf[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:24
VPIDDynamicRange_200
@ VPIDDynamicRange_200
Definition: ntv2enums.h:4076
NTV2_FORMAT_3840x2160p_5000
@ NTV2_FORMAT_3840x2160p_5000
Definition: ntv2enums.h:637
CNTV2VPID::GetLuminance
virtual NTV2VPIDLuminance GetLuminance(void) const
Definition: ntv2vpid.cpp:533
NTV2_FORMAT_720p_5994
@ NTV2_FORMAT_720p_5994
Definition: ntv2enums.h:537
VPIDSampling_YUV_444
@ VPIDSampling_YUV_444
Definition: ntv2enums.h:4044
VPIDPictureRate_5000
@ VPIDPictureRate_5000
Definition: ntv2enums.h:4032
VPIDStandard_1080_Stereo_DualLink_3Gb
@ VPIDStandard_1080_Stereo_DualLink_3Gb
Definition: ntv2enums.h:3991
VPIDPictureRate_ReservedC
@ VPIDPictureRate_ReservedC
Definition: ntv2enums.h:4035
sVPIDSampling
static const string sVPIDSampling[]
Definition: ntv2vpid.cpp:1323
CNTV2VPID::operator=
virtual CNTV2VPID & operator=(const CNTV2VPID &inRHS)
Definition: ntv2vpid.cpp:220
NTV2_FORMAT_1080p_2K_5000_A
@ NTV2_FORMAT_1080p_2K_5000_A
Definition: ntv2enums.h:617
VPIDStandard_483_576_540Mbs
@ VPIDStandard_483_576_540Mbs
Definition: ntv2enums.h:3975
VPIDLink_3
@ VPIDLink_3
Definition: ntv2enums.h:4094
VPIDDynamicRange
VPIDDynamicRange
Definition: ntv2enums.h:4073
NTV2_FORMAT_4x2048x1080psf_2500
@ NTV2_FORMAT_4x2048x1080psf_2500
Definition: ntv2enums.h:589
NTV2_FBF_10BIT_RGB
@ NTV2_FBF_10BIT_RGB
See 10-Bit RGB Format.
Definition: ntv2enums.h:217
VPIDPictureRate_6000
@ VPIDPictureRate_6000
Definition: ntv2enums.h:4034
VPIDTableInitializer
Definition: ntv2vpid.cpp:38
VPIDStandard_UHDTV2_MultiLink_10Gb
@ VPIDStandard_UHDTV2_MultiLink_10Gb
Definition: ntv2enums.h:4004
CNTV2VPID::IsStandard3Ga
virtual bool IsStandard3Ga(void) const
Definition: ntv2vpid.cpp:250
AJALabelValuePairs
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
Definition: info.h:69
CNTV2VPID::VPIDStandardIsDualLink
static bool VPIDStandardIsDualLink(const VPIDStandard inStd)
Definition: ntv2vpid.cpp:1149
VPIDStandard_720
@ VPIDStandard_720
Definition: ntv2enums.h:3976
VPIDPictureRate_ReservedE
@ VPIDPictureRate_ReservedE
Definition: ntv2enums.h:4037
xHEX0N
#define xHEX0N(__x__, __n__)
Definition: ntv2publicinterface.h:5605
NTV2_FORMAT_1080p_2K_5000_B
@ NTV2_FORMAT_1080p_2K_5000_B
Definition: ntv2enums.h:622
NTV2_FORMAT_1080psf_2997_2
@ NTV2_FORMAT_1080psf_2997_2
Definition: ntv2enums.h:562
CNTV2VPID::GetStandard
virtual VPIDStandard GetStandard(void) const
Definition: ntv2vpid.cpp:318
sVPIDLuminance
static const string sVPIDLuminance[]
Definition: ntv2vpid.cpp:1333
NTV2_FORMAT_4x4096x2160p_5994
@ NTV2_FORMAT_4x4096x2160p_5994
Definition: ntv2enums.h:699
NTV2_FORMAT_4x2048x1080p_2400
@ NTV2_FORMAT_4x2048x1080p_2400
Definition: ntv2enums.h:591
NTV2_FORMAT_1080p_2K_4800_B
@ NTV2_FORMAT_1080p_2K_4800_B
Definition: ntv2enums.h:621
VPIDBitDepth_12_Full
@ VPIDBitDepth_12_Full
Definition: ntv2enums.h:4087
CNTV2VPID::IsStandardMultiLink4320
virtual bool IsStandardMultiLink4320(void) const
Definition: ntv2vpid.cpp:266
VPIDSampling_YUVD_4444
@ VPIDSampling_YUVD_4444
Definition: ntv2enums.h:4052
CNTV2VPID::GetDualLinkChannel
virtual VPIDChannel GetDualLinkChannel(void) const
Definition: ntv2vpid.cpp:448
NTV2_FORMAT_4x1920x1080p_2400
@ NTV2_FORMAT_4x1920x1080p_2400
Definition: ntv2enums.h:585
ntv2registerexpert.h
Declares the CNTV2RegisterExpert class.
NTV2_FORMAT_4x1920x1080psf_2400
@ NTV2_FORMAT_4x1920x1080psf_2400
Definition: ntv2enums.h:582
NTV2_FORMAT_720p_2500
@ NTV2_FORMAT_720p_2500
Definition: ntv2enums.h:555
VPIDStandard_Unknown
@ VPIDStandard_Unknown
Definition: ntv2enums.h:3971
NTV2_FORMAT_1080psf_2500_2
@ NTV2_FORMAT_1080psf_2500_2
Definition: ntv2enums.h:561
sVPIDColorimetry
static const string sVPIDColorimetry[]
Definition: ntv2vpid.cpp:1332
kRegShiftVPIDVersionID
@ kRegShiftVPIDVersionID
Definition: ntv2publicinterface.h:3035
VPIDPictureRate_ReservedF
@ VPIDPictureRate_ReservedF
Definition: ntv2enums.h:4038
VPIDSpec::audioCarriage
VPIDAudio audioCarriage
Specifies how audio is carried in additional channels.
Definition: ntv2vpidfromspec.h:35
CNTV2VPID::VPIDVersionToString
static const std::string VPIDVersionToString(const VPIDVersion inVers)
Definition: ntv2vpid.cpp:1021
NTV2_FORMAT_3840x2160p_2400
@ NTV2_FORMAT_3840x2160p_2400
Definition: ntv2enums.h:631
NTV2_FORMAT_1080p_2400
@ NTV2_FORMAT_1080p_2400
Definition: ntv2enums.h:545
NTV2_FORMAT_1080i_6000
@ NTV2_FORMAT_1080i_6000
Definition: ntv2enums.h:536
VPIDLink
VPIDLink
Definition: ntv2enums.h:4090
VPIDAudio_Additional
@ VPIDAudio_Additional
Definition: ntv2enums.h:4106
NTV2_FBF_ABGR
@ NTV2_FBF_ABGR
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:219
kRegMaskVPIDProgressiveTransport
@ kRegMaskVPIDProgressiveTransport
Definition: ntv2publicinterface.h:1970
NTV2_FORMAT_3840x2160p_3000
@ NTV2_FORMAT_3840x2160p_3000
Definition: ntv2enums.h:634
NTV2_FORMAT_1080psf_2400
@ NTV2_FORMAT_1080psf_2400
Definition: ntv2enums.h:540
VPIDChannel_7
@ VPIDChannel_7
Definition: ntv2enums.h:4069
NTV2_FORMAT_4096x2160p_5994
@ NTV2_FORMAT_4096x2160p_5994
Definition: ntv2enums.h:657
CNTV2VPID::SetColorimetry
virtual CNTV2VPID & SetColorimetry(const NTV2VPIDColorimetry inColorimetry)
Definition: ntv2vpid.cpp:480
VPIDSampling_YUVD_4224
@ VPIDSampling_YUVD_4224
Definition: ntv2enums.h:4051
VPIDChannel
VPIDChannel
Definition: ntv2enums.h:4061
NTV2_FORMAT_4x2048x1080psf_2997
@ NTV2_FORMAT_4x2048x1080psf_2997
Definition: ntv2enums.h:599
VPIDStandard_VC2
@ VPIDStandard_VC2
Definition: ntv2enums.h:4005
kRegShiftVPIDPictureRate
@ kRegShiftVPIDPictureRate
Definition: ntv2publicinterface.h:3030
NTV2_FORMAT_1080p_2K_2997
@ NTV2_FORMAT_1080p_2K_2997
Definition: ntv2enums.h:615
VPIDSpec::useChannel
bool useChannel
If true, the following vpidChannel value should be inserted into th VPID.
Definition: ntv2vpidfromspec.h:31