AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
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:4050
VPIDStandard_1080_QuadLink
@ VPIDStandard_1080_QuadLink
Definition: ntv2enums.h:3952
NTV2_FORMAT_3840x2160p_6000
@ NTV2_FORMAT_3840x2160p_6000
Definition: ntv2enums.h:616
VPIDSampling_YUVA_4224
@ VPIDSampling_YUVA_4224
Definition: ntv2enums.h:4011
VPIDLink_2
@ VPIDLink_2
Definition: ntv2enums.h:4057
VPIDStandard_2160_Stereo_Quad_3Gb
@ VPIDStandard_2160_Stereo_Quad_3Gb
Definition: ntv2enums.h:3963
kRegMaskVPIDChannel
@ kRegMaskVPIDChannel
Definition: ntv2publicinterface.h:1958
VPIDBitDepth_10_Full
@ VPIDBitDepth_10_Full
Definition: ntv2enums.h:4048
NTV2_FORMAT_625_5000
@ NTV2_FORMAT_625_5000
Definition: ntv2enums.h:544
VPIDChannel_2
@ VPIDChannel_2
Definition: ntv2enums.h:4028
NTV2_FORMAT_4x1920x1080p_6000
@ NTV2_FORMAT_4x1920x1080p_6000
Definition: ntv2enums.h:580
VPIDStandard_1080_DualLink_3Gb
@ VPIDStandard_1080_DualLink_3Gb
Definition: ntv2enums.h:3946
NTV2_FORMAT_1080psf_2398
@ NTV2_FORMAT_1080psf_2398
Definition: ntv2enums.h:516
NTV2_IS_3G_FORMAT
#define NTV2_IS_3G_FORMAT(__f__)
Definition: ntv2enums.h:883
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:625
VPIDLink_8
@ VPIDLink_8
Definition: ntv2enums.h:4063
NTV2_FBF_ARGB
@ NTV2_FBF_ARGB
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:212
CNTV2VPID::GetInfo
virtual AJALabelValuePairs & GetInfo(AJALabelValuePairs &outInfo) const
Definition: ntv2vpid.cpp:1386
NTV2_FORMAT_720p_5000
@ NTV2_FORMAT_720p_5000
Definition: ntv2enums.h:527
YesOrNo
#define YesOrNo(__x__)
Definition: ntv2vpid.cpp:1384
VPIDStandard
VPIDStandard
Definition: ntv2enums.h:3933
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:4019
NTV2_FORMAT_4x4096x2160p_4800
@ NTV2_FORMAT_4x4096x2160p_4800
Definition: ntv2enums.h:674
VPIDPictureRate_None
@ VPIDPictureRate_None
Definition: ntv2enums.h:3987
NTV2_FORMAT_4x4096x2160p_2398
@ NTV2_FORMAT_4x4096x2160p_2398
Definition: ntv2enums.h:668
NTV2_FORMAT_525_5994
@ NTV2_FORMAT_525_5994
Definition: ntv2enums.h:543
VPIDLink_5
@ VPIDLink_5
Definition: ntv2enums.h:4060
VPIDStandard_UHDTV2_Quad_OctaLink_10Gb
@ VPIDStandard_UHDTV2_Quad_OctaLink_10Gb
Definition: ntv2enums.h:3966
VPIDSpec::videoFormat
NTV2VideoFormat videoFormat
Specifies the format of the video stream.
Definition: ntv2vpidfromspec.h:24
VPIDStandard_1080_OctLink
@ VPIDStandard_1080_OctLink
Definition: ntv2enums.h:3964
stTable4096pTSI
static NTV2VideoFormat stTable4096pTSI[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:33
NTV2_FORMAT_4096x2160p_2500
@ NTV2_FORMAT_4096x2160p_2500
Definition: ntv2enums.h:626
VPIDStandard_FT_2048x1556_Dual
@ VPIDStandard_FT_2048x1556_Dual
Definition: ntv2enums.h:3973
VPIDStandard_VC2_Level65_270Mbs
@ VPIDStandard_VC2_Level65_270Mbs
Definition: ntv2enums.h:3971
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:584
NTV2_FBF_10BIT_DPX_LE
@ NTV2_FBF_10BIT_DPX_LE
10-Bit DPX Little-Endian
Definition: ntv2enums.h:226
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:506
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:601
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:213
NTV2_FORMAT_1080psf_2K_2398
@ NTV2_FORMAT_1080psf_2K_2398
Definition: ntv2enums.h:525
kRegMaskVPIDProgressivePicture
@ kRegMaskVPIDProgressivePicture
Definition: ntv2publicinterface.h:1969
VPIDStandard_1080_Stereo_3Gb
@ VPIDStandard_1080_Stereo_3Gb
Definition: ntv2enums.h:3951
sVPIDRGBRange
static const string sVPIDRGBRange[]
Definition: ntv2vpid.cpp:1334
NTV2_FORMAT_1080p_2K_4800_A
@ NTV2_FORMAT_1080p_2K_4800_A
Definition: ntv2enums.h:596
NTV2_FBF_48BIT_RGB
@ NTV2_FBF_48BIT_RGB
See 48-Bit RGB.
Definition: ntv2enums.h:227
kRegShiftVPIDProgressiveTransport
@ kRegShiftVPIDProgressiveTransport
Definition: ntv2publicinterface.h:3033
NTV2_FORMAT_1080i_5994
@ NTV2_FORMAT_1080i_5994
Definition: ntv2enums.h:512
VPIDPictureRate_4795
@ VPIDPictureRate_4795
Definition: ntv2enums.h:3991
NTV2VPIDXferChars
enum NTV2VPIDTransferCharacteristics NTV2VPIDXferChars
VPIDAudio_Unknown
@ VPIDAudio_Unknown
Definition: ntv2enums.h:4068
VPIDAudio_Copied
@ VPIDAudio_Copied
Definition: ntv2enums.h:4069
NTV2_FORMAT_4x1920x1080psf_3000
@ NTV2_FORMAT_4x1920x1080psf_3000
Definition: ntv2enums.h:573
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:4178
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:593
VPIDDynamicRange_100
@ VPIDDynamicRange_100
Definition: ntv2enums.h:4039
NTV2_FORMAT_4x2048x1080p_2997
@ NTV2_FORMAT_4x2048x1080p_2997
Definition: ntv2enums.h:574
NTV2_FBF_10BIT_ARGB
@ NTV2_FBF_10BIT_ARGB
10-Bit ARGB
Definition: ntv2enums.h:232
VPIDPictureRate
VPIDPictureRate
Definition: ntv2enums.h:3985
NTV2_FORMAT_4x4096x2160p_2500
@ NTV2_FORMAT_4x4096x2160p_2500
Definition: ntv2enums.h:670
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:673
NTV2_FORMAT_4x1920x1080p_2997
@ NTV2_FORMAT_4x1920x1080p_2997
Definition: ntv2enums.h:570
NTV2_FORMAT_4x1920x1080p_2500
@ NTV2_FORMAT_4x1920x1080p_2500
Definition: ntv2enums.h:563
CNTV2VPID::SetTransferCharacteristics
virtual CNTV2VPID & SetTransferCharacteristics(const NTV2VPIDXferChars inXferChars)
Definition: ntv2vpid.cpp:467
NTV2_FBF_INVALID
@ NTV2_FBF_INVALID
Definition: ntv2enums.h:245
NTV2_FORMAT_4x2048x1080p_4800
@ NTV2_FORMAT_4x2048x1080p_4800
Definition: ntv2enums.h:585
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:207
NTV2_FORMAT_4x3840x2160p_2500
@ NTV2_FORMAT_4x3840x2160p_2500
Definition: ntv2enums.h:657
stTablesInitialized
static bool stTablesInitialized(false)
sVPIDAudio
static const string sVPIDAudio[]
Definition: ntv2vpid.cpp:1330
VPIDSampling_GBRD_4444
@ VPIDSampling_GBRD_4444
Definition: ntv2enums.h:4017
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:218
VPIDStandard_1080_3Gb
@ VPIDStandard_1080_3Gb
Definition: ntv2enums.h:3948
VPIDStandard_483_576_3Gb
@ VPIDStandard_483_576_3Gb
Definition: ntv2enums.h:3949
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:3990
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:655
VPIDChannel_3
@ VPIDChannel_3
Definition: ntv2enums.h:4029
NTV2_FBF_24BIT_RGB
@ NTV2_FBF_24BIT_RGB
See 24-Bit RGB.
Definition: ntv2enums.h:223
VPIDStandard_720_3Gb
@ VPIDStandard_720_3Gb
Definition: ntv2enums.h:3947
VPIDSampling_ReservedE
@ VPIDSampling_ReservedE
Definition: ntv2enums.h:4021
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:595
NTV2_FORMAT_3840x2160p_2500
@ NTV2_FORMAT_3840x2160p_2500
Definition: ntv2enums.h:609
kRegMaskVPIDPictureRate
@ kRegMaskVPIDPictureRate
Definition: ntv2publicinterface.h:1967
VPIDStandard_2160_DualLink
@ VPIDStandard_2160_DualLink
Definition: ntv2enums.h:3958
kRegShiftVPIDChannel
@ kRegShiftVPIDChannel
Definition: ntv2publicinterface.h:3022
VPIDStandard_1080_Dual_3Gb
@ VPIDStandard_1080_Dual_3Gb
Definition: ntv2enums.h:3957
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:671
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:3995
VPIDPictureRate_Reserved1
@ VPIDPictureRate_Reserved1
Definition: ntv2enums.h:3988
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:4007
VPIDStandard_483_576
@ VPIDStandard_483_576
Definition: ntv2enums.h:3936
NTV2_FORMAT_4x2048x1080psf_2398
@ NTV2_FORMAT_4x2048x1080psf_2398
Definition: ntv2enums.h:564
NTV2_FBF_10BIT_RGB_PACKED
@ NTV2_FBF_10BIT_RGB_PACKED
10-Bit Packed RGB
Definition: ntv2enums.h:231
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:567
stTable1920p
static NTV2VideoFormat stTable1920p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:23
VPIDStandard_1080_Stereo_Quad_3Gb
@ VPIDStandard_1080_Stereo_Quad_3Gb
Definition: ntv2enums.h:3962
SetVPIDFromSpec
bool SetVPIDFromSpec(ULWord *const pOutVPID, const VPIDSpec *const pInVPIDSpec)
Generates a VPID based on the supplied specification.
Definition: ntv2vpidfromspec.cpp:25
CNTV2VPID::BitDepthString
static const std::string BitDepthString(const VPIDBitDepth depth)
Definition: ntv2vpid.cpp:978
VPIDVersion_1
@ VPIDVersion_1
Definition: ntv2enums.h:3930
VPIDSampling_YUVA_4444
@ VPIDSampling_YUVA_4444
Definition: ntv2enums.h:4012
NTV2_FORMAT_1080psf_2K_2500
@ NTV2_FORMAT_1080psf_2K_2500
Definition: ntv2enums.h:537
NTV2_FORMAT_4x2048x1080psf_2400
@ NTV2_FORMAT_4x2048x1080psf_2400
Definition: ntv2enums.h:565
VPIDStandard_UHDTV1_MultiLink_10Gb
@ VPIDStandard_UHDTV1_MultiLink_10Gb
Definition: ntv2enums.h:3967
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:529
VPIDPictureRate_2398
@ VPIDPictureRate_2398
Definition: ntv2enums.h:3989
NTV2_FORMAT_1080psf_3000_2
@ NTV2_FORMAT_1080psf_3000_2
Definition: ntv2enums.h:540
NTV2_FORMAT_1080p_2K_2400
@ NTV2_FORMAT_1080p_2K_2400
Definition: ntv2enums.h:524
VPIDStandard_4320_DualLink_12Gb
@ VPIDStandard_4320_DualLink_12Gb
Definition: ntv2enums.h:3980
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:575
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:631
VPIDStandard_1080
@ VPIDStandard_1080
Definition: ntv2enums.h:3941
VPIDChannel_5
@ VPIDChannel_5
Definition: ntv2enums.h:4031
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
VPIDSampling_YUV_420
@ VPIDSampling_YUV_420
Definition: ntv2enums.h:4010
NTV2_FORMAT_4x4096x2160p_3000
@ NTV2_FORMAT_4x4096x2160p_3000
Definition: ntv2enums.h:672
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:3972
VPIDSampling_Reserved7
@ VPIDSampling_Reserved7
Definition: ntv2enums.h:4014
NTV2_FORMAT_4x2048x1080psf_3000
@ NTV2_FORMAT_4x2048x1080psf_3000
Definition: ntv2enums.h:577
VPIDStandard_1080_AFR_Single_6Gb
@ VPIDStandard_1080_AFR_Single_6Gb
Definition: ntv2enums.h:3977
NTV2_FORMAT_1080p_2997
@ NTV2_FORMAT_1080p_2997
Definition: ntv2enums.h:518
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:597
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:3965
VPIDPictureRate_2997
@ VPIDPictureRate_2997
Definition: ntv2enums.h:3993
NTV2_FORMAT_1080p_3000
@ NTV2_FORMAT_1080p_3000
Definition: ntv2enums.h:519
stTable3840psfSID
static NTV2VideoFormat stTable3840psfSID[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:30
NTV2_FORMAT_4x3840x2160p_5994
@ NTV2_FORMAT_4x3840x2160p_5994
Definition: ntv2enums.h:661
NTV2_FORMAT_4096x2160p_2398
@ NTV2_FORMAT_4096x2160p_2398
Definition: ntv2enums.h:624
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:515
VPIDStandard_2160_QuadLink_3Ga
@ VPIDStandard_2160_QuadLink_3Ga
Definition: ntv2enums.h:3959
NTV2_VPID_Range_Full
@ NTV2_VPID_Range_Full
Definition: ntv2enums.h:4187
NTV2_FORMAT_1080p_2500
@ NTV2_FORMAT_1080p_2500
Definition: ntv2enums.h:520
VPIDStandard_483_576_DualLink
@ VPIDStandard_483_576_DualLink
Definition: ntv2enums.h:3937
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:4045
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:581
kRegShiftVPIDColorimetryAltHigh
@ kRegShiftVPIDColorimetryAltHigh
Definition: ntv2publicinterface.h:3028
NTV2_FBF_24BIT_BGR
@ NTV2_FBF_24BIT_BGR
See 24-Bit BGR.
Definition: ntv2enums.h:224
VPIDAudio_Reserved
@ VPIDAudio_Reserved
Definition: ntv2enums.h:4071
NTV2_FORMAT_4096x2160p_6000
@ NTV2_FORMAT_4096x2160p_6000
Definition: ntv2enums.h:635
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:3970
VPIDTableInitializer::VPIDTableInitializer
VPIDTableInitializer()
Definition: ntv2vpid.cpp:41
VPIDLink_1
@ VPIDLink_1
Definition: ntv2enums.h:4056
NTV2_FORMAT_4x1920x1080p_3000
@ NTV2_FORMAT_4x1920x1080p_3000
Definition: ntv2enums.h:571
NTV2_FORMAT_4x3840x2160p_2997
@ NTV2_FORMAT_4x3840x2160p_2997
Definition: ntv2enums.h:658
VPIDPictureRate_ReservedD
@ VPIDPictureRate_ReservedD
Definition: ntv2enums.h:4000
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:528
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:3982
NTV2VideoFormatToString
std::string NTV2VideoFormatToString(const NTV2VideoFormat inValue, const bool inUseFrameRate=false)
Definition: ntv2utils.cpp:6750
NTV2_IS_372_DUALLINK_FORMAT
#define NTV2_IS_372_DUALLINK_FORMAT(__f__)
Definition: ntv2enums.h:857
NTV2_FORMAT_4x3840x2160p_5000
@ NTV2_FORMAT_4x3840x2160p_5000
Definition: ntv2enums.h:660
NTV2_FORMAT_1080p_2K_5994_A
@ NTV2_FORMAT_1080p_2K_5994_A
Definition: ntv2enums.h:591
VPIDStandard_2160_Single_12Gb
@ VPIDStandard_2160_Single_12Gb
Definition: ntv2enums.h:3978
VPIDStandard_1080_Stereo_3Ga
@ VPIDStandard_1080_Stereo_3Ga
Definition: ntv2enums.h:3954
VPIDStandard_1080_Stereo_Quad_3Ga
@ VPIDStandard_1080_Stereo_Quad_3Ga
Definition: ntv2enums.h:3961
VPIDStandard_FT_2048x1556_3Gb
@ VPIDStandard_FT_2048x1556_3Gb
Definition: ntv2enums.h:3974
VPIDStandard_483_576_1485Mbs
@ VPIDStandard_483_576_1485Mbs
Definition: ntv2enums.h:3942
CNTV2VPID::SetLuminance
virtual CNTV2VPID & SetLuminance(const NTV2VPIDLuminance inLuminance)
Definition: ntv2vpid.cpp:525
VPIDSampling_GBRA_4444
@ VPIDSampling_GBRA_4444
Definition: ntv2enums.h:4013
VPIDStandard_2160_DualLink_12Gb
@ VPIDStandard_2160_DualLink_12Gb
Definition: ntv2enums.h:3981
NTV2_FORMAT_1080p_2K_2500
@ NTV2_FORMAT_1080p_2K_2500
Definition: ntv2enums.h:536
VPIDStandard_720_3Ga
@ VPIDStandard_720_3Ga
Definition: ntv2enums.h:3944
VPIDStandard_1080_Single_6Gb
@ VPIDStandard_1080_Single_6Gb
Definition: ntv2enums.h:3976
VPIDStandard_1080_Dual_3Ga
@ VPIDStandard_1080_Dual_3Ga
Definition: ntv2enums.h:3956
NTV2_FORMAT_4x1920x1080psf_2997
@ NTV2_FORMAT_4x1920x1080psf_2997
Definition: ntv2enums.h:572
stTable720p
static NTV2VideoFormat stTable720p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:21
VPIDSampling
VPIDSampling
Definition: ntv2enums.h:4005
NTV2_FORMAT_1080p_6000_A
@ NTV2_FORMAT_1080p_6000_A
Definition: ntv2enums.h:535
VPIDStandard_1080_3Ga
@ VPIDStandard_1080_3Ga
Definition: ntv2enums.h:3945
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:4032
NTV2_FORMAT_1080p_2K_2398
@ NTV2_FORMAT_1080p_2K_2398
Definition: ntv2enums.h:523
NTV2_FORMAT_3840x2160p_2997
@ NTV2_FORMAT_3840x2160p_2997
Definition: ntv2enums.h:610
NTV2_FORMAT_4096x2160p_4800
@ NTV2_FORMAT_4096x2160p_4800
Definition: ntv2enums.h:632
NTV2_FORMAT_1080p_2398
@ NTV2_FORMAT_1080p_2398
Definition: ntv2enums.h:521
VPIDStandard_2160_Single_6Gb
@ VPIDStandard_2160_Single_6Gb
Definition: ntv2enums.h:3975
CNTV2VPID::SetBitDepth
virtual CNTV2VPID & SetBitDepth(const VPIDBitDepth inBitDepth)
Definition: ntv2vpid.cpp:454
VPIDStandard_2160_QuadDualLink_3Gb
@ VPIDStandard_2160_QuadDualLink_3Gb
Definition: ntv2enums.h:3960
NTV2_FORMAT_1080psf_2K_2400
@ NTV2_FORMAT_1080psf_2K_2400
Definition: ntv2enums.h:526
kRegMaskVPIDColorimetryAltHigh
@ kRegMaskVPIDColorimetryAltHigh
Definition: ntv2publicinterface.h:1965
VPIDChannel_8
@ VPIDChannel_8
Definition: ntv2enums.h:4034
CNTV2VPID::CNTV2VPID
CNTV2VPID(const ULWord inData=0)
Definition: ntv2vpid.cpp:206
NTV2_FORMAT_3840x2160p_5994
@ NTV2_FORMAT_3840x2160p_5994
Definition: ntv2enums.h:615
NTV2_FORMAT_4x4096x2160p_2400
@ NTV2_FORMAT_4x4096x2160p_2400
Definition: ntv2enums.h:669
VPIDStandard_1080_10_12_AFR_Single_12Gb
@ VPIDStandard_1080_10_12_AFR_Single_12Gb
Definition: ntv2enums.h:3979
NTV2_FORMAT_4x4096x2160p_6000
@ NTV2_FORMAT_4x4096x2160p_6000
Definition: ntv2enums.h:677
NTV2_FORMAT_3840x2160p_2398
@ NTV2_FORMAT_3840x2160p_2398
Definition: ntv2enums.h:607
VPIDPictureRate_5994
@ VPIDPictureRate_5994
Definition: ntv2enums.h:3997
CNTV2VPID::IsStandardTwoSampleInterleave
virtual bool IsStandardTwoSampleInterleave(void) const
Definition: ntv2vpid.cpp:281
kRegmaskVPIDLuminance
@ kRegmaskVPIDLuminance
Definition: ntv2publicinterface.h:1957
VPIDVersion_0
@ VPIDVersion_0
Definition: ntv2enums.h:3929
NTV2VPIDColorimetry
NTV2VPIDColorimetry
Definition: ntv2enums.h:4170
kRegMaskVPIDColorimetryAltLow
@ kRegMaskVPIDColorimetryAltLow
Definition: ntv2publicinterface.h:1962
NTV2_FORMAT_UNKNOWN
@ NTV2_FORMAT_UNKNOWN
Definition: ntv2enums.h:498
NTV2_FORMAT_4x1920x1080psf_2398
@ NTV2_FORMAT_4x1920x1080psf_2398
Definition: ntv2enums.h:558
VPIDChannel_1
@ VPIDChannel_1
Definition: ntv2enums.h:4027
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:590
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:628
stTable2048p
static NTV2VideoFormat stTable2048p[VPIDPictureRate_ReservedF+1]
Definition: ntv2vpid.cpp:22
VPIDVersion
VPIDVersion
Definition: ntv2enums.h:3927
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:560
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:656
VPIDLink_7
@ VPIDLink_7
Definition: ntv2enums.h:4062
VPIDSampling_XYZ_444
@ VPIDSampling_XYZ_444
Definition: ntv2enums.h:4022
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:569
NTV2_FORMAT_4x1920x1080p_5994
@ NTV2_FORMAT_4x1920x1080p_5994
Definition: ntv2enums.h:579
NTV2_FORMAT_720p_2398
@ NTV2_FORMAT_720p_2398
Definition: ntv2enums.h:531
NTV2_FORMAT_4x4096x2160p_5000
@ NTV2_FORMAT_4x4096x2160p_5000
Definition: ntv2enums.h:675
VPIDPictureRate_3000
@ VPIDPictureRate_3000
Definition: ntv2enums.h:3994
NTV2_FORMAT_4x3840x2160p_6000
@ NTV2_FORMAT_4x3840x2160p_6000
Definition: ntv2enums.h:662
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:3953
kRegShiftVPIDSampling
@ kRegShiftVPIDSampling
Definition: ntv2publicinterface.h:3023
kRegShiftVPIDDualLinkChannel
@ kRegShiftVPIDDualLinkChannel
Definition: ntv2publicinterface.h:3021
VPIDBitDepth_10
@ VPIDBitDepth_10
Definition: ntv2enums.h:4049
CNTV2VPID::GetVideoFormat
virtual NTV2VideoFormat GetVideoFormat(void) const
Definition: ntv2vpid.cpp:674
VPIDAudio
VPIDAudio
Definition: ntv2enums.h:4066
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:533
NTV2_FORMAT_4x2048x1080p_6000
@ NTV2_FORMAT_4x2048x1080p_6000
Definition: ntv2enums.h:583
VPIDLink_6
@ VPIDLink_6
Definition: ntv2enums.h:4061
kRegMaskVPIDImageAspect16x9
@ kRegMaskVPIDImageAspect16x9
Definition: ntv2publicinterface.h:1966
NTV2_VPID_Range_Narrow
@ NTV2_VPID_Range_Narrow
Definition: ntv2enums.h:4186
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:633
VPIDSpec::colorimetry
NTV2VPIDColorimetry colorimetry
Describes the Colorimetry.
Definition: ntv2vpidfromspec.h:40
NTV2_FORMAT_1080i_5000
@ NTV2_FORMAT_1080i_5000
Definition: ntv2enums.h:511
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:4059
CNTV2VPID::IsRGBSampling
virtual bool IsRGBSampling(void) const
Definition: ntv2vpid.cpp:414
NTV2_FORMAT_4x1920x1080p_5000
@ NTV2_FORMAT_4x1920x1080p_5000
Definition: ntv2enums.h:578
VPIDSampling_GBR_444
@ VPIDSampling_GBR_444
Definition: ntv2enums.h:4009
NTV2_FORMAT_4x1920x1080p_2398
@ NTV2_FORMAT_4x1920x1080p_2398
Definition: ntv2enums.h:561
NTV2_FORMAT_1080p_6000_B
@ NTV2_FORMAT_1080p_6000_B
Definition: ntv2enums.h:530
CNTV2VPID::GetChannel
virtual VPIDChannel GetChannel(void) const
Definition: ntv2vpid.cpp:434
VPIDStandard_1080_DualLink
@ VPIDStandard_1080_DualLink
Definition: ntv2enums.h:3943
sVPIDBitDepth
static const string sVPIDBitDepth[]
Definition: ntv2vpid.cpp:1328
VPIDPictureRate_2500
@ VPIDPictureRate_2500
Definition: ntv2enums.h:3992
VPIDStandard_720_Stereo_3Gb
@ VPIDStandard_720_Stereo_3Gb
Definition: ntv2enums.h:3950
NTV2_FORMAT_4096x2160p_2997
@ NTV2_FORMAT_4096x2160p_2997
Definition: ntv2enums.h:627
kRegShiftVPIDImageAspect16x9Alt
@ kRegShiftVPIDImageAspect16x9Alt
Definition: ntv2publicinterface.h:3026
VPIDSampling_ReservedB
@ VPIDSampling_ReservedB
Definition: ntv2enums.h:4018
VPIDDynamicRange_Reserved3
@ VPIDDynamicRange_Reserved3
Definition: ntv2enums.h:4042
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:534
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:582
VPIDChannel_4
@ VPIDChannel_4
Definition: ntv2enums.h:4030
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:4184
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:4020
NTV2_FORMAT_4x3840x2160p_3000
@ NTV2_FORMAT_4x3840x2160p_3000
Definition: ntv2enums.h:659
CNTV2VPID::SetDualLinkChannel
virtual CNTV2VPID & SetDualLinkChannel(const VPIDChannel inChannel)
Definition: ntv2vpid.cpp:440
VPIDDynamicRange_400
@ VPIDDynamicRange_400
Definition: ntv2enums.h:4041
NTV2_FORMAT_1080p_2K_5994_B
@ NTV2_FORMAT_1080p_2K_5994_B
Definition: ntv2enums.h:600
NTV2_FBF_16BIT_ARGB
@ NTV2_FBF_16BIT_ARGB
16-Bit ARGB
Definition: ntv2enums.h:233
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:4040
NTV2_FORMAT_3840x2160p_5000
@ NTV2_FORMAT_3840x2160p_5000
Definition: ntv2enums.h:614
CNTV2VPID::GetLuminance
virtual NTV2VPIDLuminance GetLuminance(void) const
Definition: ntv2vpid.cpp:533
NTV2_FORMAT_720p_5994
@ NTV2_FORMAT_720p_5994
Definition: ntv2enums.h:514
VPIDSampling_YUV_444
@ VPIDSampling_YUV_444
Definition: ntv2enums.h:4008
VPIDPictureRate_5000
@ VPIDPictureRate_5000
Definition: ntv2enums.h:3996
VPIDStandard_1080_Stereo_DualLink_3Gb
@ VPIDStandard_1080_Stereo_DualLink_3Gb
Definition: ntv2enums.h:3955
VPIDPictureRate_ReservedC
@ VPIDPictureRate_ReservedC
Definition: ntv2enums.h:3999
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:594
VPIDStandard_483_576_540Mbs
@ VPIDStandard_483_576_540Mbs
Definition: ntv2enums.h:3939
VPIDLink_3
@ VPIDLink_3
Definition: ntv2enums.h:4058
VPIDDynamicRange
VPIDDynamicRange
Definition: ntv2enums.h:4037
NTV2_FORMAT_4x2048x1080psf_2500
@ NTV2_FORMAT_4x2048x1080psf_2500
Definition: ntv2enums.h:566
NTV2_FBF_10BIT_RGB
@ NTV2_FBF_10BIT_RGB
See 10-Bit RGB Format.
Definition: ntv2enums.h:214
VPIDPictureRate_6000
@ VPIDPictureRate_6000
Definition: ntv2enums.h:3998
VPIDTableInitializer
Definition: ntv2vpid.cpp:38
VPIDStandard_UHDTV2_MultiLink_10Gb
@ VPIDStandard_UHDTV2_MultiLink_10Gb
Definition: ntv2enums.h:3968
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:3940
VPIDPictureRate_ReservedE
@ VPIDPictureRate_ReservedE
Definition: ntv2enums.h:4001
xHEX0N
#define xHEX0N(__x__, __n__)
Definition: ntv2publicinterface.h:5604
NTV2_FORMAT_1080p_2K_5000_B
@ NTV2_FORMAT_1080p_2K_5000_B
Definition: ntv2enums.h:599
NTV2_FORMAT_1080psf_2997_2
@ NTV2_FORMAT_1080psf_2997_2
Definition: ntv2enums.h:539
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:676
NTV2_FORMAT_4x2048x1080p_2400
@ NTV2_FORMAT_4x2048x1080p_2400
Definition: ntv2enums.h:568
NTV2_FORMAT_1080p_2K_4800_B
@ NTV2_FORMAT_1080p_2K_4800_B
Definition: ntv2enums.h:598
VPIDBitDepth_12_Full
@ VPIDBitDepth_12_Full
Definition: ntv2enums.h:4051
CNTV2VPID::IsStandardMultiLink4320
virtual bool IsStandardMultiLink4320(void) const
Definition: ntv2vpid.cpp:266
VPIDSampling_YUVD_4444
@ VPIDSampling_YUVD_4444
Definition: ntv2enums.h:4016
CNTV2VPID::GetDualLinkChannel
virtual VPIDChannel GetDualLinkChannel(void) const
Definition: ntv2vpid.cpp:448
NTV2_FORMAT_4x1920x1080p_2400
@ NTV2_FORMAT_4x1920x1080p_2400
Definition: ntv2enums.h:562
ntv2registerexpert.h
Declares the CNTV2RegisterExpert class.
NTV2_FORMAT_4x1920x1080psf_2400
@ NTV2_FORMAT_4x1920x1080psf_2400
Definition: ntv2enums.h:559
NTV2_FORMAT_720p_2500
@ NTV2_FORMAT_720p_2500
Definition: ntv2enums.h:532
VPIDStandard_Unknown
@ VPIDStandard_Unknown
Definition: ntv2enums.h:3935
NTV2_FORMAT_1080psf_2500_2
@ NTV2_FORMAT_1080psf_2500_2
Definition: ntv2enums.h:538
sVPIDColorimetry
static const string sVPIDColorimetry[]
Definition: ntv2vpid.cpp:1332
kRegShiftVPIDVersionID
@ kRegShiftVPIDVersionID
Definition: ntv2publicinterface.h:3035
VPIDPictureRate_ReservedF
@ VPIDPictureRate_ReservedF
Definition: ntv2enums.h:4002
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:608
NTV2_FORMAT_1080p_2400
@ NTV2_FORMAT_1080p_2400
Definition: ntv2enums.h:522
NTV2_FORMAT_1080i_6000
@ NTV2_FORMAT_1080i_6000
Definition: ntv2enums.h:513
VPIDLink
VPIDLink
Definition: ntv2enums.h:4054
VPIDAudio_Additional
@ VPIDAudio_Additional
Definition: ntv2enums.h:4070
NTV2_FBF_ABGR
@ NTV2_FBF_ABGR
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:216
kRegMaskVPIDProgressiveTransport
@ kRegMaskVPIDProgressiveTransport
Definition: ntv2publicinterface.h:1970
NTV2_FORMAT_3840x2160p_3000
@ NTV2_FORMAT_3840x2160p_3000
Definition: ntv2enums.h:611
NTV2_FORMAT_1080psf_2400
@ NTV2_FORMAT_1080psf_2400
Definition: ntv2enums.h:517
VPIDChannel_7
@ VPIDChannel_7
Definition: ntv2enums.h:4033
NTV2_FORMAT_4096x2160p_5994
@ NTV2_FORMAT_4096x2160p_5994
Definition: ntv2enums.h:634
CNTV2VPID::SetColorimetry
virtual CNTV2VPID & SetColorimetry(const NTV2VPIDColorimetry inColorimetry)
Definition: ntv2vpid.cpp:480
VPIDSampling_YUVD_4224
@ VPIDSampling_YUVD_4224
Definition: ntv2enums.h:4015
VPIDChannel
VPIDChannel
Definition: ntv2enums.h:4025
NTV2_FORMAT_4x2048x1080psf_2997
@ NTV2_FORMAT_4x2048x1080psf_2997
Definition: ntv2enums.h:576
VPIDStandard_VC2
@ VPIDStandard_VC2
Definition: ntv2enums.h:3969
kRegShiftVPIDPictureRate
@ kRegShiftVPIDPictureRate
Definition: ntv2publicinterface.h:3030
NTV2_FORMAT_1080p_2K_2997
@ NTV2_FORMAT_1080p_2K_2997
Definition: ntv2enums.h:592
VPIDSpec::useChannel
bool useChannel
If true, the following vpidChannel value should be inserted into th VPID.
Definition: ntv2vpidfromspec.h:31