|
AJA NTV2 SDK
17.5.0.1492
NTV2 SDK 17.5.0.1492
|
Go to the documentation of this file.
36 #define NTV2UTILS_ENUM_CASE_RETURN_STR(enum_name) case(enum_name): return #enum_name
38 #define NTV2UTILS_ENUM_CASE_RETURN_VAL_OR_ENUM_STR(condition, retail_name, enum_name)\
39 case(enum_name): return condition ? retail_name : #enum_name
47 uint32_t rowBytes = 0;
49 switch (inPixelFormat)
53 rowBytes = inPixelWidth * 2;
58 rowBytes = (( inPixelWidth % 48 == 0 ) ? inPixelWidth : (((inPixelWidth / 48 ) + 1) * 48)) * 8 / 3;
68 rowBytes = inPixelWidth * 4;
73 rowBytes = inPixelWidth * 3;
77 rowBytes = inPixelWidth * 2/4;
81 rowBytes = inPixelWidth * 6;
85 rowBytes = inPixelWidth * 36 / 8;
90 rowBytes = inPixelWidth * 20 / 16;
95 rowBytes = inPixelWidth;
121 out16BitYUVLine.clear ();
122 const ULWord * pInputLine (
reinterpret_cast <const ULWord *
> (pIn10BitYUVLine));
129 inNumPixels -= inNumPixels % 6;
131 const ULWord totalULWords (inNumPixels * 4 / 6);
133 for (
ULWord inputCount (0); inputCount < totalULWords; inputCount++)
135 out16BitYUVLine.push_back ((pInputLine [inputCount] ) & 0x3FF);
136 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 10) & 0x3FF);
137 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 20) & 0x3FF);
145 out16BitYUVLine.clear ();
146 const ULWord * pInputLine (
reinterpret_cast <const ULWord *
> (pIn10BitYUVLine));
152 if (inFormatDesc.GetRasterWidth () < 6)
157 for (
ULWord inputCount (0); inputCount < inFormatDesc.
linePitch; inputCount++)
159 out16BitYUVLine.push_back ((pInputLine [inputCount] ) & 0x3FF);
160 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 10) & 0x3FF);
161 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 20) & 0x3FF);
171 for ( uint32_t sampleCount = 0, dataCount = 0;
172 sampleCount < (numPixels*2) ;
173 sampleCount+=3,dataCount++ )
175 ycbcrBuffer[sampleCount] = packedBuffer[dataCount]&0x3FF;
176 ycbcrBuffer[sampleCount+1] = (packedBuffer[dataCount]>>10)&0x3FF;
177 ycbcrBuffer[sampleCount+2] = (packedBuffer[dataCount]>>20)&0x3FF;
186 for ( uint32_t inputCount=0, outputCount=0;
187 inputCount < (numPixels*2);
188 outputCount += 4, inputCount += 12 )
190 packedBuffer[outputCount] = uint32_t (ycbcrBuffer[inputCount+0]) + uint32_t (ycbcrBuffer[inputCount+1]<<10) + uint32_t (ycbcrBuffer[inputCount+2]<<20);
191 packedBuffer[outputCount+1] = uint32_t (ycbcrBuffer[inputCount+3]) + uint32_t (ycbcrBuffer[inputCount+4]<<10) + uint32_t (ycbcrBuffer[inputCount+5]<<20);
192 packedBuffer[outputCount+2] = uint32_t (ycbcrBuffer[inputCount+6]) + uint32_t (ycbcrBuffer[inputCount+7]<<10) + uint32_t (ycbcrBuffer[inputCount+8]<<20);
193 packedBuffer[outputCount+3] = uint32_t (ycbcrBuffer[inputCount+9]) + uint32_t (ycbcrBuffer[inputCount+10]<<10) + uint32_t (ycbcrBuffer[inputCount+11]<<20);
200 for ( uint32_t count = 0; count < numPixels*2; count+=4 )
204 buffer[count+2] = Cr;
214 for (uint32_t pixel(0); pixel < numPixels * 2; pixel++)
215 ycbcr8BitBuffer[pixel] = uint8_t(ycbcr10BitBuffer[pixel] >> 2);
224 bool bUseSmpteRange,
bool bAlphaFromLuma)
335 switch ( signalMask )
338 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
347 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
355 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
364 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
372 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
382 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
390 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
413 void StackQuadrants(uint8_t* pSrc, uint32_t srcWidth, uint32_t srcHeight, uint32_t srcRowBytes,
419 uint32_t copyRowBytes = srcRowBytes/2;
420 uint32_t copyHeight = srcHeight/2;
421 uint32_t dstRowBytes = copyRowBytes;
422 uint32_t dstHeight = srcHeight/2;
426 uint32_t srcLHSQuadrantRowBytes = srcRowBytes/2;
428 for (uint32_t quadrant=0; quadrant<4; quadrant++)
434 case 0: srcSample = 0;
break;
435 case 1: srcSample = srcLHSQuadrantRowBytes;
break;
436 case 2: srcSample = (srcRowBytes*copyHeight);
break;
437 case 3: srcSample = (srcRowBytes*copyHeight) + srcLHSQuadrantRowBytes;
break;
441 dstSample = quadrant * dstRowBytes * dstHeight;
443 for (uint32_t row=0; row<copyHeight; row++)
445 memcpy(&pDst[dstSample], &pSrc[srcSample], copyRowBytes);
446 dstSample += dstRowBytes;
447 srcSample += srcRowBytes;
454 void CopyFromQuadrant(uint8_t* srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t srcQuadrant, uint8_t* dstBuffer, uint32_t quad13Offset)
458 ULWord dstHeight = srcHeight / 2;
459 ULWord dstRowBytes = srcRowBytes / 2;
465 case 0: srcSample = 0;
break;
466 case 1: srcSample = dstRowBytes - quad13Offset;
break;
467 case 2: srcSample = srcRowBytes*dstHeight;
break;
468 case 3: srcSample = srcRowBytes*dstHeight + dstRowBytes - quad13Offset;
break;
472 for (
ULWord i=0; i<dstHeight; i++)
474 memcpy(&dstBuffer[dstSample], &srcBuffer[srcSample], dstRowBytes);
475 dstSample += dstRowBytes;
476 srcSample += srcRowBytes;
482 void CopyToQuadrant(uint8_t* srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t dstQuadrant, uint8_t* dstBuffer, uint32_t quad13Offset)
486 ULWord dstRowBytes = srcRowBytes * 2;
492 case 0: dstSample = 0;
break;
493 case 1: dstSample = srcRowBytes - quad13Offset;
break;
494 case 2: dstSample = dstRowBytes*srcHeight;
break;
495 case 3: dstSample = dstRowBytes*srcHeight + srcRowBytes - quad13Offset;
break;
499 for (
ULWord i=0; i<srcHeight; i++)
501 memcpy(&dstBuffer[dstSample], &srcBuffer[srcSample], srcRowBytes);
502 dstSample += dstRowBytes;
503 srcSample += srcRowBytes;
513 NTV2_ASSERT (pIn10BitYUVLine && pOut16BitYUVLine &&
"UnpackLine_10BitYUVto16BitYUV -- NULL buffer pointer(s)");
514 NTV2_ASSERT (inNumPixels &&
"UnpackLine_10BitYUVto16BitYUV -- Zero pixel count");
516 for (
ULWord outputCount = 0, inputCount = 0;
517 outputCount < (inNumPixels * 2);
518 outputCount += 3, inputCount++)
520 pOut16BitYUVLine [outputCount ] = pIn10BitYUVLine [inputCount] & 0x3FF;
521 pOut16BitYUVLine [outputCount + 1] = (pIn10BitYUVLine [inputCount] >> 10) & 0x3FF;
522 pOut16BitYUVLine [outputCount + 2] = (pIn10BitYUVLine [inputCount] >> 20) & 0x3FF;
529 NTV2_ASSERT (pIn16BitYUVLine && pOut10BitYUVLine &&
"PackLine_16BitYUVto10BitYUV -- NULL buffer pointer(s)");
530 NTV2_ASSERT (inNumPixels &&
"PackLine_16BitYUVto10BitYUV -- Zero pixel count");
532 for (
ULWord inputCount = 0, outputCount = 0;
533 inputCount < (inNumPixels * 2);
534 outputCount += 4, inputCount += 12)
536 pOut10BitYUVLine [outputCount ] =
ULWord (pIn16BitYUVLine [inputCount + 0]) + (
ULWord (pIn16BitYUVLine [inputCount + 1]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 2]) << 20);
537 pOut10BitYUVLine [outputCount + 1] =
ULWord (pIn16BitYUVLine [inputCount + 3]) + (
ULWord (pIn16BitYUVLine [inputCount + 4]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 5]) << 20);
538 pOut10BitYUVLine [outputCount + 2] =
ULWord (pIn16BitYUVLine [inputCount + 6]) + (
ULWord (pIn16BitYUVLine [inputCount + 7]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 8]) << 20);
539 pOut10BitYUVLine [outputCount + 3] =
ULWord (pIn16BitYUVLine [inputCount + 9]) + (
ULWord (pIn16BitYUVLine [inputCount +10]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount +11]) << 20);
546 if (!pOut10BitYUVLine)
550 if (
ULWord(in16BitYUVLine.size()) < inNumPixels*2)
553 for (
ULWord inputCount = 0, outputCount = 0;
554 inputCount < (inNumPixels * 2);
555 outputCount += 4, inputCount += 12)
557 pOut10BitYUVLine[outputCount ] =
ULWord(in16BitYUVLine[inputCount + 0]) + (
ULWord(in16BitYUVLine[inputCount + 1]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 2]) << 20);
558 pOut10BitYUVLine[outputCount + 1] =
ULWord(in16BitYUVLine[inputCount + 3]) + (
ULWord(in16BitYUVLine[inputCount + 4]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 5]) << 20);
559 pOut10BitYUVLine[outputCount + 2] =
ULWord(in16BitYUVLine[inputCount + 6]) + (
ULWord(in16BitYUVLine[inputCount + 7]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 8]) << 20);
560 pOut10BitYUVLine[outputCount + 3] =
ULWord(in16BitYUVLine[inputCount + 9]) + (
ULWord(in16BitYUVLine[inputCount +10]) << 10) + (
ULWord(in16BitYUVLine[inputCount +11]) << 20);
569 if (inYCbCrLine.size() < 12)
571 if (inFrameBuffer.
IsNULL())
580 const uint32_t pixPerLineX2 (inDescriptor.GetRasterWidth() * 2);
581 uint32_t * pOutPackedLine (
AJA_NULL);
589 for (uint32_t inputCount = 0, outputCount = 0; inputCount < pixPerLineX2; outputCount += 4, inputCount += 12)
591 if ((inputCount+11) >= uint32_t(inYCbCrLine.size()))
593 #if defined(_DEBUG) // 'at' throws upon bad index values
594 pOutPackedLine[outputCount] = uint32_t(inYCbCrLine.at(inputCount+0)) | uint32_t(inYCbCrLine.at(inputCount+ 1)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 2)<<20);
595 pOutPackedLine[outputCount+1] = uint32_t(inYCbCrLine.at(inputCount+3)) | uint32_t(inYCbCrLine.at(inputCount+ 4)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 5)<<20);
596 pOutPackedLine[outputCount+2] = uint32_t(inYCbCrLine.at(inputCount+6)) | uint32_t(inYCbCrLine.at(inputCount+ 7)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 8)<<20);
597 pOutPackedLine[outputCount+3] = uint32_t(inYCbCrLine.at(inputCount+9)) | uint32_t(inYCbCrLine.at(inputCount+10)<<10) | uint32_t(inYCbCrLine.at(inputCount+11)<<20);
598 #else // 'operator[]' doesn't throw
599 pOutPackedLine[outputCount] = uint32_t(inYCbCrLine[inputCount+0]) | uint32_t(inYCbCrLine[inputCount+ 1]<<10) | uint32_t(inYCbCrLine[inputCount+ 2]<<20);
600 pOutPackedLine[outputCount+1] = uint32_t(inYCbCrLine[inputCount+3]) | uint32_t(inYCbCrLine[inputCount+ 4]<<10) | uint32_t(inYCbCrLine[inputCount+ 5]<<20);
601 pOutPackedLine[outputCount+2] = uint32_t(inYCbCrLine[inputCount+6]) | uint32_t(inYCbCrLine[inputCount+ 7]<<10) | uint32_t(inYCbCrLine[inputCount+ 8]<<20);
602 pOutPackedLine[outputCount+3] = uint32_t(inYCbCrLine[inputCount+9]) | uint32_t(inYCbCrLine[inputCount+10]<<10) | uint32_t(inYCbCrLine[inputCount+11]<<20);
612 outYCbCrLine.clear();
613 if (inFrameBuffer.
IsNULL())
621 if (inDescriptor.GetRasterWidth () < 6)
626 for (
ULWord inputCount(0); inputCount < inDescriptor.
linePitch; inputCount++)
628 outYCbCrLine.push_back((pInputLine[inputCount] ) & 0x3FF);
629 outYCbCrLine.push_back((pInputLine[inputCount] >> 10) & 0x3FF);
630 outYCbCrLine.push_back((pInputLine[inputCount] >> 20) & 0x3FF);
639 for (
UWord count = 0; count < numULWords; count++)
641 ULWord value = (packedycbcrLine[count])<<2;
642 value = (value<<24) + ((value>>24)&0x000000FF) + ((value<<8)&0x00FF0000) + ((value>>8)&0x0000FF00);
644 packedycbcrLine[count] = value;
650 for (
ULWord pixel=0;pixel<numPixels;pixel++)
652 ULWord value = DPXLinebuffer[pixel];
655 rgba10BitBuffer[pixel].
Red =
UWord((value&0xC0)>>14) +
UWord((value&0xFF)<<2);
656 rgba10BitBuffer[pixel].
Green =
UWord((value&0x3F00)>>4) +
UWord((value&0xF00000)>>20);
657 rgba10BitBuffer[pixel].
Blue =
UWord((value&0xFC000000)>>26) +
UWord((value&0xF0000)>>12);
661 rgba10BitBuffer[pixel].
Red = (value>>22)&0x3FF;
662 rgba10BitBuffer[pixel].
Green = (value>>12)&0x3FF;
663 rgba10BitBuffer[pixel].
Blue = (value>>2)&0x3FF;
672 for (
ULWord pixel=0;pixel<numPixels;pixel++)
674 ULWord value = DPXLinebuffer[pixel];
675 rawrp215Buffer[pixel] = ((value&0x3F00)>>4) + ((value&0xF00000)>>20);
682 for (
ULWord pixel=0;pixel<numPixels;pixel++)
684 ULWord value = DPXLinebuffer[pixel];
685 rawrp215Buffer[pixel] = ((value&0x3F)>>4) + ((value&0xF00000)>>20);
696 switch ( signalMask )
699 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
708 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
716 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
725 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
733 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
743 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
751 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
771 if (pOutLineData && inNumPixels)
772 for (
ULWord count(0); count < inNumPixels; count++)
784 if (pOutLineData && inNumPixels)
785 for (
ULWord count(0); count < inNumPixels; count++)
795 if (pOutLineData && inNumPixels)
796 for (
ULWord count(0); count < inNumPixels*2; count+=4)
798 pOutLineData[count] = Cb;
799 pOutLineData[count+1] = Y;
800 pOutLineData[count+2] = Cr;
801 pOutLineData[count+3] = Y;
811 if (!pBaseVideoAddress)
815 UWord lineBuffer[2048*2];
816 ULWord * pBaseAddress (
reinterpret_cast<ULWord*
>(pBaseVideoAddress));
833 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
842 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
856 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
865 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
879 for (
ULWord count = 0; count < numPixels*2; count += 4)
881 lineData[count] = Cb;
882 lineData[count+1] = Y;
883 lineData[count+2] = Cr;
884 lineData[count+3] = Y;
889 for (
ULWord count = 0; count < numPixels*2; count += 4)
892 lineData[count+1] = Cb;
893 lineData[count+2] = Y;
894 lineData[count+3] = Cr;
903 if (!pBaseVideoAddress)
907 UByte * pBaseAddress (
reinterpret_cast<UByte*
>(pBaseVideoAddress));
953 ULWord topPad = 0, bottomPad = 0, leftPad = 0, rightPad = 0;
956 ULWord* pSrc = pSrcBuffer;
957 ULWord* pDst = pDstBuffer;
959 if (dstHeight > srcHeight)
961 topPad = (dstHeight - srcHeight) / 2;
962 bottomPad = dstHeight - topPad - srcHeight;
965 pSrc += ((srcHeight - dstHeight) / 2) * srcWidth;
967 if (dstWidth > srcWidth)
969 leftPad = (dstWidth - srcWidth) / 2;
970 rightPad = dstWidth - srcWidth - leftPad;
973 pSrc += (srcWidth - dstWidth) / 2;
976 contentHeight = dstHeight - topPad - bottomPad;
977 contentWidth = dstWidth - leftPad - rightPad;
980 memset(pDst, 0, topPad * dstWidth * 4);
981 pDst += topPad * dstWidth;
984 while (contentHeight--)
987 memset(pDst, 0, leftPad * 4);
991 memcpy(pDst, pSrc, contentWidth * 4);
992 pDst += contentWidth;
996 memset(pDst, 0, rightPad * 4);
1001 memset(pDst, 0, bottomPad * dstWidth * 4);
1006 const ULWord inDstBytesPerLine,
1007 const UWord inDstTotalLines)
1009 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 2);
1010 UByte * pLine (pDstBuffer);
1012 for (
UWord lineNum(0); lineNum < inDstTotalLines; lineNum++)
1015 pLine += inDstBytesPerLine;
1022 const ULWord inDstBytesPerLine,
1023 const UWord inDstTotalLines)
1029 NTV2Buffer dstBuffer (pDstBuffer,
ULWord(inDstTotalLines) * inDstBytesPerLine);
1030 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1033 for (
UWord lineNum(1); lineNum < inDstTotalLines; lineNum++)
1034 if (!dstBuffer.
CopyFrom (dstBuffer,
1036 ULWord(lineNum) * inDstBytesPerLine,
1044 const ULWord inDstBytesPerLine,
1045 const UWord inDstTotalLines)
1047 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 2);
1048 UByte * pLine (pDstBuffer);
1050 for (
UWord lineNum(0); lineNum < inDstTotalLines; lineNum++)
1053 pLine += inDstBytesPerLine;
1060 const ULWord inDstBytesPerLine,
1061 const UWord inDstTotalLines)
1067 NTV2Buffer dstBuffer (pDstBuffer,
ULWord(inDstTotalLines) * inDstBytesPerLine);
1068 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1071 for (
UWord lineNum(1); lineNum < inDstTotalLines; lineNum++)
1072 if (!dstBuffer.
CopyFrom (dstBuffer,
1074 ULWord(lineNum) * inDstBytesPerLine,
1083 const ULWord inDstBytesPerLine,
1084 const UWord inDstTotalLines)
1088 if (inDstBytesPerLine == 0)
1090 if (inDstTotalLines == 0)
1093 switch (inPixelFormat)
1143 const ULWord inDstBytesPerLine,
1144 const UWord inDstTotalLines)
1148 if (inDstBytesPerLine == 0)
1150 if (inDstTotalLines == 0)
1153 switch (inPixelFormat)
1203 const UByte * pResult (pInFrameBuffer);
1206 pResult += inBytesPerVertLine *
ULWord(inVertLineOffset);
1207 pResult +=
ULWord(inBytesPerHorzPixel) *
ULWord(inHorzPixelOffset);
1214 UByte * pResult (pInFrameBuffer);
1217 pResult += inBytesPerVertLine *
ULWord(inVertLineOffset);
1218 pResult +=
ULWord(inBytesPerHorzPixel) *
ULWord(inHorzPixelOffset);
1225 const ULWord inDstBytesPerLine,
1226 const UWord inDstTotalLines,
1227 const UWord inDstVertLineOffset,
1228 const UWord inDstHorzPixelOffset,
1229 const UByte * pSrcBuffer,
1230 const ULWord inSrcBytesPerLine,
1231 const UWord inSrcTotalLines,
1232 const UWord inSrcVertLineOffset,
1233 const UWord inSrcVertLinesToCopy,
1234 const UWord inSrcHorzPixelOffset,
1235 const UWord inSrcHorzPixelsToCopy)
1237 if (inDstHorzPixelOffset & 1)
1239 if (inSrcHorzPixelOffset & 1)
1242 const ULWord TWO_BYTES_PER_PIXEL (2);
1243 const ULWord dstMaxPixelWidth (inDstBytesPerLine / TWO_BYTES_PER_PIXEL);
1244 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / TWO_BYTES_PER_PIXEL);
1245 UWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1246 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1248 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1250 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1252 if (
ULWord(inSrcHorzPixelOffset + inSrcHorzPixelsToCopy) > srcMaxPixelWidth)
1253 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1254 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1255 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1256 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1258 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1259 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1264 const UByte * pSrc (::
GetReadAddress_2vuy (pSrcBuffer, inSrcBytesPerLine, inSrcVertLineOffset, inSrcHorzPixelOffset, TWO_BYTES_PER_PIXEL));
1265 UByte * pDst (::
GetWriteAddress_2vuy (pDstBuffer, inDstBytesPerLine, inDstVertLineOffset, inDstHorzPixelOffset, TWO_BYTES_PER_PIXEL));
1267 for (
UWord srcLinesToCopy (numVertLinesToCopy); srcLinesToCopy > 0; srcLinesToCopy--)
1269 UWord dstPixelsCopied (0);
1270 const UByte * pSavedSrc (pSrc);
1271 UByte * pSavedDst (pDst);
1272 for (
UWord hPixelsToCopy (numHorzPixelsToCopy); hPixelsToCopy > 0; hPixelsToCopy--)
1277 if (dstPixelsCopied + inDstHorzPixelOffset >=
UWord(dstMaxPixelWidth))
1279 pDst += TWO_BYTES_PER_PIXEL;
1280 pSrc += TWO_BYTES_PER_PIXEL;
1284 pSrc += inSrcBytesPerLine;
1285 pDst += inDstBytesPerLine;
1294 const ULWord inDstBytesPerLine,
1295 const UWord inDstTotalLines,
1296 const UWord inDstVertLineOffset,
1297 const UWord inDstHorzPixelOffset,
1298 const UByte * pSrcBuffer,
1299 const ULWord inSrcBytesPerLine,
1300 const UWord inSrcTotalLines,
1301 const UWord inSrcVertLineOffset,
1302 const UWord inSrcVertLinesToCopy,
1303 const UWord inSrcHorzPixelOffset,
1304 const UWord inSrcHorzPixelsToCopy)
1306 if (inDstHorzPixelOffset % 6)
1308 if (inSrcHorzPixelOffset % 6)
1310 if (inDstBytesPerLine % 16)
1312 if (inSrcBytesPerLine % 16)
1314 if (inSrcHorzPixelsToCopy % 6)
1317 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1318 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 16 * 6);
1319 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1320 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1322 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1324 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1326 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1327 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1328 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1329 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1331 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1332 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1333 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1335 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1336 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1341 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1343 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 16 / 6);
1344 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 16 / 6);
1345 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 16 / 6);
1355 const ULWord inDstBytesPerLine,
1356 const UWord inDstTotalLines,
1357 const UWord inDstVertLineOffset,
1358 const UWord inDstHorzPixelOffset,
1359 const UByte * pSrcBuffer,
1360 const ULWord inSrcBytesPerLine,
1361 const UWord inSrcTotalLines,
1362 const UWord inSrcVertLineOffset,
1363 const UWord inSrcVertLinesToCopy,
1364 const UWord inSrcHorzPixelOffset,
1365 const UWord inSrcHorzPixelsToCopy)
1367 if (inDstHorzPixelOffset % 16)
1369 if (inSrcHorzPixelOffset % 16)
1371 if (inDstBytesPerLine % 20)
1373 if (inSrcBytesPerLine % 20)
1375 if (inSrcHorzPixelsToCopy % 16)
1378 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 20 * 16);
1379 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 20 * 16);
1380 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1381 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1383 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1385 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1387 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1388 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1389 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1390 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1392 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1393 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1394 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1396 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1397 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1402 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1404 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 20 / 16);
1405 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 20 / 16);
1406 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 20 / 16);
1415 const ULWord inDstBytesPerLine,
1416 const UWord inDstTotalLines,
1417 const UWord inDstVertLineOffset,
1418 const UWord inDstHorzPixelOffset,
1419 const UByte * pSrcBuffer,
1420 const ULWord inSrcBytesPerLine,
1421 const UWord inSrcTotalLines,
1422 const UWord inSrcVertLineOffset,
1423 const UWord inSrcVertLinesToCopy,
1424 const UWord inSrcHorzPixelOffset,
1425 const UWord inSrcHorzPixelsToCopy)
1427 if (inDstHorzPixelOffset % 8)
1429 if (inSrcHorzPixelOffset % 8)
1431 if (inDstBytesPerLine % 36)
1433 if (inSrcBytesPerLine % 36)
1435 if (inSrcHorzPixelsToCopy % 8)
1438 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 36 * 8);
1439 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 36 * 8);
1440 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1441 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1443 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1445 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1447 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1448 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1449 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1450 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1452 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1453 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1454 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1456 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1457 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1462 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1464 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 36 / 8);
1465 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 36 / 8);
1466 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 36 / 8);
1476 const ULWord inDstBytesPerLine,
1477 const UWord inDstTotalLines,
1478 const UWord inDstVertLineOffset,
1479 const UWord inDstHorzPixelOffset,
1480 const UByte * pSrcBuffer,
1481 const ULWord inSrcBytesPerLine,
1482 const UWord inSrcTotalLines,
1483 const UWord inSrcVertLineOffset,
1484 const UWord inSrcVertLinesToCopy,
1485 const UWord inSrcHorzPixelOffset,
1486 const UWord inSrcHorzPixelsToCopy)
1488 const UWord FOUR_BYTES_PER_PIXEL (4);
1490 if (inDstBytesPerLine % FOUR_BYTES_PER_PIXEL)
1492 if (inSrcBytesPerLine % FOUR_BYTES_PER_PIXEL)
1495 const ULWord dstMaxPixelWidth (inDstBytesPerLine / FOUR_BYTES_PER_PIXEL);
1496 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / FOUR_BYTES_PER_PIXEL);
1497 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1498 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1500 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1502 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1504 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1505 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1506 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1507 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1508 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1509 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1510 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1512 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1513 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1518 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1520 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * FOUR_BYTES_PER_PIXEL);
1521 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * FOUR_BYTES_PER_PIXEL);
1522 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * FOUR_BYTES_PER_PIXEL);
1532 const ULWord inDstBytesPerLine,
1533 const UWord inDstTotalLines,
1534 const UWord inDstVertLineOffset,
1535 const UWord inDstHorzPixelOffset,
1536 const UByte * pSrcBuffer,
1537 const ULWord inSrcBytesPerLine,
1538 const UWord inSrcTotalLines,
1539 const UWord inSrcVertLineOffset,
1540 const UWord inSrcVertLinesToCopy,
1541 const UWord inSrcHorzPixelOffset,
1542 const UWord inSrcHorzPixelsToCopy)
1544 const UWord THREE_BYTES_PER_PIXEL (3);
1546 if (inDstBytesPerLine % THREE_BYTES_PER_PIXEL)
1548 if (inSrcBytesPerLine % THREE_BYTES_PER_PIXEL)
1551 const ULWord dstMaxPixelWidth (inDstBytesPerLine / THREE_BYTES_PER_PIXEL);
1552 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / THREE_BYTES_PER_PIXEL);
1553 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1554 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1556 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1558 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1560 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1561 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1562 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1563 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1564 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1565 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1566 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1568 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1569 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1574 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1576 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * THREE_BYTES_PER_PIXEL);
1577 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * THREE_BYTES_PER_PIXEL);
1578 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * THREE_BYTES_PER_PIXEL);
1588 const ULWord inDstBytesPerLine,
1589 const UWord inDstTotalLines,
1590 const UWord inDstVertLineOffset,
1591 const UWord inDstHorzPixelOffset,
1592 const UByte * pSrcBuffer,
1593 const ULWord inSrcBytesPerLine,
1594 const UWord inSrcTotalLines,
1595 const UWord inSrcVertLineOffset,
1596 const UWord inSrcVertLinesToCopy,
1597 const UWord inSrcHorzPixelOffset,
1598 const UWord inSrcHorzPixelsToCopy)
1600 const UWord SIX_BYTES_PER_PIXEL (6);
1602 if (inDstBytesPerLine % SIX_BYTES_PER_PIXEL)
1604 if (inSrcBytesPerLine % SIX_BYTES_PER_PIXEL)
1607 const ULWord dstMaxPixelWidth (inDstBytesPerLine / SIX_BYTES_PER_PIXEL);
1608 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / SIX_BYTES_PER_PIXEL);
1609 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1610 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1612 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1614 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1616 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1617 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1618 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1619 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1620 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1621 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1622 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1624 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1625 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1630 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1632 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * SIX_BYTES_PER_PIXEL);
1633 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * SIX_BYTES_PER_PIXEL);
1634 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * SIX_BYTES_PER_PIXEL);
1644 const ULWord inDstBytesPerLine,
1645 const UWord inDstTotalLines,
1646 const UWord inDstVertLineOffset,
1647 const UWord inDstHorzPixelOffset,
1648 const UByte * pSrcBuffer,
1649 const ULWord inSrcBytesPerLine,
1650 const UWord inSrcTotalLines,
1651 const UWord inSrcVertLineOffset,
1652 const UWord inSrcVertLinesToCopy,
1653 const UWord inSrcHorzPixelOffset,
1654 const UWord inSrcHorzPixelsToCopy)
1660 if (pDstBuffer == pSrcBuffer)
1662 if (inDstBytesPerLine == 0)
1664 if (inSrcBytesPerLine == 0)
1666 if (inDstTotalLines == 0)
1668 if (inSrcTotalLines == 0)
1670 if (inDstVertLineOffset >= inDstTotalLines)
1672 if (inSrcVertLineOffset >= inSrcTotalLines)
1674 switch (inPixelFormat)
1678 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1679 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1683 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1684 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1692 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1693 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1697 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1698 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1701 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1702 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1705 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1706 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1708 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1709 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1739 switch (inFrameRate)
1755 #if !defined(NTV2_DEPRECATE_16_0)
1768 return 30.0 / 1.001;
1774 switch (inFrameRate)
1777 case NTV2_FRAMERATE_11988: outFractionNumerator = 120000; outFractionDenominator = 1001;
break;
1779 case NTV2_FRAMERATE_5994: outFractionNumerator = 60000; outFractionDenominator = 1001;
break;
1782 case NTV2_FRAMERATE_4795: outFractionNumerator = 48000; outFractionDenominator = 1001;
break;
1784 case NTV2_FRAMERATE_2997: outFractionNumerator = 30000; outFractionDenominator = 1001;
break;
1787 case NTV2_FRAMERATE_2398: outFractionNumerator = 24000; outFractionDenominator = 1001;
break;
1789 case NTV2_FRAMERATE_1498: outFractionNumerator = 15000; outFractionDenominator = 1001;
break;
1790 #if !defined(NTV2_DEPRECATE_16_0)
1792 case NTV2_FRAMERATE_1898: outFractionNumerator = 19000; outFractionDenominator = 1001;
break;
1794 case NTV2_FRAMERATE_1798: outFractionNumerator = 18000; outFractionDenominator = 1001;
break;
1795 #endif // !defined(NTV2_DEPRECATE_16_0)
1800 default: outFractionNumerator = 0; outFractionDenominator = 0;
return false;
1809 switch (inScanGeometry)
1826 const UWord inHeightLines,
1827 const UWord inWidthPixels,
1828 const bool inIsInterlaced,
1829 const bool inIsLevelB,
1837 if (inIsPSF == ::
IsPSF(fmt))
1848 switch (inVideoFormat)
2029 return quarterSizedFormat;
2035 switch (inVideoFormat)
2216 return inVideoFormat;
2227 default:
return inGeometry;
2240 default:
return inGeometry;
2256 default:
return inStandard;
2274 default:
return inStandard;
2283 switch (inVideoFormat)
2452 #if defined (_DEBUG)
2506 switch (inVideoFormat)
2538 default: result = inVideoFormat;
break;
2552 switch (inVideoFormat)
2739 #if defined (_DEBUG)
2783 ulSize = ((ulSize / 4096) + 1) * 4096;
2796 ULWord audioSamplesPerFrame(0);
2797 inCadenceFrame %= 5;
2799 if (inIsSMPTE372Enabled)
2803 switch (inFrameRate)
2820 audioSamplesPerFrame = 400;
2823 switch (inCadenceFrame)
2827 case 4: audioSamplesPerFrame = 400;
break;
2830 case 3: audioSamplesPerFrame = 401;
break;
2834 audioSamplesPerFrame = 800;
2837 switch (inCadenceFrame)
2839 case 0: audioSamplesPerFrame = 800;
break;
2844 case 4: audioSamplesPerFrame = 801;
break;
2853 switch (inCadenceFrame)
2857 case 4: audioSamplesPerFrame = 1602;
break;
2860 case 3: audioSamplesPerFrame = 1601;
break;
2869 switch (inCadenceFrame)
2871 case 0: audioSamplesPerFrame = 3204;
break;
2876 case 4: audioSamplesPerFrame = 3203;
break;
2879 #if !defined(NTV2_DEPRECATE_16_0)
2885 case NTV2_FRAMERATE_UNKNOWN:
2887 audioSamplesPerFrame = 0;
2896 audioSamplesPerFrame = 800;
2899 switch (inCadenceFrame)
2904 case 3: audioSamplesPerFrame = 801;
break;
2906 case 4: audioSamplesPerFrame = 800;
break;
2911 switch (inCadenceFrame)
2915 case 4: audioSamplesPerFrame = 1602;
break;
2918 case 3: audioSamplesPerFrame = 1601;
break;
2927 switch (inCadenceFrame)
2929 case 0: audioSamplesPerFrame = 3204;
break;
2934 case 4: audioSamplesPerFrame = 3203;
break;
2943 switch (inCadenceFrame)
2945 case 0: audioSamplesPerFrame = 3204*2;
break;
2950 case 4: audioSamplesPerFrame = 3203*2;
break;
2953 #if !defined(NTV2_DEPRECATE_16_0)
2959 case NTV2_FRAMERATE_UNKNOWN:
2961 audioSamplesPerFrame = 0*2;
2970 audioSamplesPerFrame = 1600;
2973 switch (inCadenceFrame)
2977 case 4: audioSamplesPerFrame = 1602;
break;
2980 case 3: audioSamplesPerFrame = 1601;
break;
2984 audioSamplesPerFrame = 3200;
2987 switch (inCadenceFrame)
2989 case 0: audioSamplesPerFrame = 3204;
break;
2994 case 4: audioSamplesPerFrame = 3203;
break;
3003 switch (inCadenceFrame)
3006 case 1: audioSamplesPerFrame = 6407;
break;
3010 case 4: audioSamplesPerFrame = 6406;
break;
3019 switch (inCadenceFrame)
3024 case 3: audioSamplesPerFrame = 12813;
break;
3026 case 4: audioSamplesPerFrame = 12812;
break;
3029 #if !defined(NTV2_DEPRECATE_16_0)
3035 case NTV2_FRAMERATE_UNKNOWN:
3037 audioSamplesPerFrame = 0*2;
3042 return audioSamplesPerFrame;
3053 LWord64 numAudioSamplesFromWholeGroups;
3055 ULWord numWholeGroupsOfFive;
3056 ULWord numAudioSamplesFromRemainder;
3059 numWholeGroupsOfFive = inFrameNumNonInclusive / 5;
3060 remainder = inFrameNumNonInclusive % 5;
3062 numTotalAudioSamples = 0;
3063 numAudioSamplesFromWholeGroups = 0;
3064 numAudioSamplesFromRemainder = 0;
3068 switch (inFrameRate)
3071 numTotalAudioSamples = 400 * inFrameNumNonInclusive;
3074 numAudioSamplesFromWholeGroups = ((2*401) + (3*400)) * numWholeGroupsOfFive;
3075 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((400 * remainder) + remainder/2);
3076 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3079 numTotalAudioSamples = 800 * inFrameNumNonInclusive;
3083 numAudioSamplesFromWholeGroups = ((1*800) + (4*801)) * numWholeGroupsOfFive;
3084 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((801 * remainder) - 1);
3085 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3088 numTotalAudioSamples = 1920/2 * inFrameNumNonInclusive;
3091 numTotalAudioSamples = 1000 * inFrameNumNonInclusive;
3094 numTotalAudioSamples = 1001 * inFrameNumNonInclusive;
3097 numTotalAudioSamples = 1600 * inFrameNumNonInclusive;
3101 numAudioSamplesFromWholeGroups = ((3*1602) + (2*1601)) * numWholeGroupsOfFive;
3102 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((1602 * remainder) - remainder/2);
3103 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3106 numTotalAudioSamples = 1920 * inFrameNumNonInclusive;
3109 numTotalAudioSamples = 2000 * inFrameNumNonInclusive;
3112 numTotalAudioSamples = 2002 * inFrameNumNonInclusive;
3115 numTotalAudioSamples = 3200 * inFrameNumNonInclusive;
3119 numAudioSamplesFromWholeGroups = ((1*3204) + (4*3203)) * numWholeGroupsOfFive;
3120 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((3203 * remainder) + 1);
3121 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3123 #if !defined(NTV2_DEPRECATE_16_0)
3129 case NTV2_FRAMERATE_UNKNOWN:
3131 numTotalAudioSamples = 0;
3137 switch (inFrameRate)
3140 numTotalAudioSamples = 800 * inFrameNumNonInclusive;
3143 numAudioSamplesFromWholeGroups = ((4*801) + (1*800)) * numWholeGroupsOfFive;
3144 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : (801 * remainder);
3145 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3148 numTotalAudioSamples = (800*2) * inFrameNumNonInclusive;
3151 numAudioSamplesFromWholeGroups = ((3*1602) + (2*1601)) * numWholeGroupsOfFive;
3152 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((1602 * remainder) - remainder/2);
3153 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3156 numTotalAudioSamples = 1920 * inFrameNumNonInclusive;
3159 numTotalAudioSamples = 2000 * inFrameNumNonInclusive;
3162 numTotalAudioSamples = 2002 * inFrameNumNonInclusive;
3165 numTotalAudioSamples = (1600*2) * inFrameNumNonInclusive;
3169 numAudioSamplesFromWholeGroups = ((1*3204) + (4*3203)) * numWholeGroupsOfFive;
3170 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((3203 * remainder) + 1);
3171 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3174 numTotalAudioSamples = (1920*2) * inFrameNumNonInclusive;
3177 numTotalAudioSamples = (2000*2) * inFrameNumNonInclusive;
3180 numTotalAudioSamples = (2002*2) * inFrameNumNonInclusive;
3183 numTotalAudioSamples = (3200*2) * inFrameNumNonInclusive;
3187 numAudioSamplesFromWholeGroups = ((1*3204*2) + (4*3203*2)) * numWholeGroupsOfFive;
3188 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : (((3203*2) * remainder) + 2);
3189 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3191 #if !defined(NTV2_DEPRECATE_16_0)
3197 case NTV2_FRAMERATE_UNKNOWN:
3199 numTotalAudioSamples = 0*2;
3204 return numTotalAudioSamples;
3209 static const ULWord sSamplesPerSecond [] = {48000, 96000, 192000, 0};
3212 return double(sSamplesPerSecond[inAudioRate]);
3226 switch (inSequenceRate)
3233 switch (inCadenceFrame % 2)
3245 switch (inCadenceFrame % 5)
3263 switch (inCadenceFrame % 4)
3277 switch (inCadenceFrame % 5)
3299 switch (inSequenceRate)
3306 switch (inCadenceFrame % 2)
3321 switch (inCadenceFrame % 4)
3342 switch (inSequenceRate)
3360 switch (inFrameRate)
3376 #if !defined(NTV2_DEPRECATE_16_0)
3382 case NTV2_FRAMERATE_UNKNOWN: break;
3401 if (duration == 100)
3421 else if (duration == 0)
3423 result = playFrameRate;
3427 float scaleFloat = scale / duration * float(100.0);
3428 long scaleInt = long(scaleFloat);
3437 switch (playFrameRate)
3447 if (scaleInt <= 1500 + 100)
3449 else if (scaleInt <= 2400 + 50)
3451 else if (scaleInt <= 2500 + 100)
3453 else if (scaleInt <= 3000 + 100)
3455 else if (scaleInt <= 4800 + 100)
3457 else if (scaleInt <= 5000 + 100)
3459 else if (scaleInt <= 6000 + 100)
3471 if (scaleInt <= 1498 + 100)
3473 else if (scaleInt <= 2398 + 100)
3475 else if (scaleInt <= 2997 + 100)
3477 else if (scaleInt <= 4795 + 100)
3479 else if (scaleInt <= 5994 + 100)
3494 if (inDenominator == 100)
3495 switch (inNumerator)
3515 const ULWord denominator(inDenominator == 1 ? inDenominator * 1000ULL : inDenominator);
3516 const ULWord numerator(inDenominator == 1 ? inNumerator * 1000ULL : inNumerator);
3537 switch (videoFormat)
3736 #if defined (_DEBUG)
3762 switch (inFrameGeometry)
3774 return inFrameGeometry;
3798 #if defined (_DEBUG)
3817 switch (inFrameGeometry)
3851 return inFrameGeometry;
3852 #if defined (_DEBUG)
3897 #if defined (_DEBUG)
3949 result.insert(inFG);
3951 #if defined (_DEBUG)
3999 #if defined (_DEBUG)
4052 #if defined (_DEBUG)
4083 if (fr == inFrameRate &&
std == inStandard && fg == geo)
4098 return fd.GetRasterWidth();
4106 return fd.GetRasterWidth();
4129 return firstFieldTop ? smpteFirstActiveLine : smpteSecondActiveLine;
4131 return firstFieldTop ? smpteSecondActiveLine : smpteFirstActiveLine;
4138 inOutStream <<
"INVALID ";
4139 inOutStream <<
"SMPTELineNumber(";
4141 inOutStream <<
"1st=" << smpteFirstActiveLine << (firstFieldTop ?
"(top)" :
"")
4142 <<
", 2nd=" << smpteSecondActiveLine << (firstFieldTop ?
"" :
"(top)")
4145 inOutStream <<
"INVALID)";
4154 oss <<
"F" << (inRasterFieldID == 0 ?
"1" :
"2") <<
" ";
4155 oss <<
"L" << dec << inLineOffset+GetFirstActiveLine(inRasterFieldID);
4164 return "Frame count/range not specified";
4165 const bool hasCount(inStr.find(
'@') != string::npos);
4166 const bool hasRange(inStr.find(
'-') != string::npos);
4168 if (hasCount && hasRange)
4169 return "'@' and '-' cannot both be specified";
4175 strs.push_back(inStr);
4177 return "No frame count/range values parsed";
4178 if (strs.size() > 2)
4179 return "More than 2 frame count/range values parsed";
4180 if (hasCount || hasRange)
4181 if (strs.size() != 2)
4182 return "Expected exactly 2 frame count/range values";
4185 for (
size_t strNdx(0); strNdx < strs.size(); strNdx++)
4186 {
string str(strs.at(strNdx));
4188 return "Expected unsigned decimal integer value";
4189 for (
size_t chNdx(0); chNdx < str.length(); chNdx++)
4190 if (!isdigit(str.at(chNdx)))
4191 return "Non-digit character encountered in '" + str +
"'";
4200 bool isValid(
false);
4202 isValid = setRangeWithCount(numbers[0], numbers[1]);
4204 isValid = setExactRange(numbers[0], numbers[1]);
4206 isValid = setCountOnly(numbers[0]);
4207 return isValid ?
"" :
"First frame past last frame";
4217 else if (isFrameRange())
4220 oss <<
DEC(count()) <<
"@" <<
DEC(firstFrame());
4222 oss <<
DEC(firstFrame()) <<
"-" <<
DEC(lastFrame());
4225 oss <<
DEC(count());
4231 else if (isFrameRange())
4232 oss <<
"Frames " <<
DEC(firstFrame()) <<
"-" <<
DEC(lastFrame()) <<
" (" <<
DEC(lastFrame()-firstFrame()+1) <<
"@" <<
DEC(firstFrame()) <<
")";
4234 oss <<
DEC(count()) <<
" frames (auto-allocated)";
4243 "FILE 720x480 420 Planar 8 Bit 59.94i",
4244 "FILE 720x480 420 Planar 8 Bit 59.94p",
4245 "FILE 720x480 420 Planar 8 Bit 60i",
4246 "FILE 720x480 420 Planar 8 Bit 60p",
4247 "FILE 720x480 422 Planar 10 Bit 59.94i",
4248 "FILE 720x480 422 Planar 10 Bit 59.94p",
4249 "FILE 720x480 422 Planar 10 Bit 60i",
4250 "FILE 720x480 422 Planar 10 Bit 60p",
4252 "FILE 720x576 420 Planar 8 Bit 50i",
4253 "FILE 720x576 420 Planar 8 Bit 50p",
4254 "FILE 720x576 422 Planar 10 Bit 50i",
4255 "FILE 720x576 422 Planar 10 Bit 50p",
4257 "FILE 1280x720 420 Planar 8 Bit 2398p",
4258 "FILE 1280x720 420 Planar 8 Bit 24p",
4259 "FILE 1280x720 420 Planar 8 Bit 25p",
4260 "FILE 1280x720 420 Planar 8 Bit 29.97p",
4261 "FILE 1280x720 420 Planar 8 Bit 30p",
4262 "FILE 1280x720 420 Planar 8 Bit 50p",
4263 "FILE 1280x720 420 Planar 8 Bit 59.94p",
4264 "FILE 1280x720 420 Planar 8 Bit 60p",
4266 "FILE 1280x720 422 Planar 10 Bit 2398p",
4267 "FILE 1280x720 422 Planar 10 Bit 25p",
4268 "FILE 1280x720 422 Planar 10 Bit 25p",
4269 "FILE 1280x720 422 Planar 10 Bit 29.97p",
4270 "FILE 1280x720 422 Planar 10 Bit 30p",
4271 "FILE 1280x720 422 Planar 10 Bit 50p",
4272 "FILE 1280x720 422 Planar 10 Bit 59.94p",
4273 "FILE 1280x720 422 Planar 10 Bit 60p",
4275 "FILE 1920x1080 420 Planar 8 Bit 2398p",
4276 "FILE 1920x1080 420 Planar 8 Bit 24p",
4277 "FILE 1920x1080 420 Planar 8 Bit 25p",
4278 "FILE 1920x1080 420 Planar 8 Bit 29.97p",
4279 "FILE 1920x1080 420 Planar 8 Bit 30p",
4280 "FILE 1920x1080 420 Planar 8 Bit 50i",
4281 "FILE 1920x1080 420 Planar 8 Bit 50p",
4282 "FILE 1920x1080 420 Planar 8 Bit 59.94i",
4283 "FILE 1920x1080 420 Planar 8 Bit 59.94p",
4284 "FILE 1920x1080 420 Planar 8 Bit 60i",
4285 "FILE 1920x1080 420 Planar 8 Bit 60p",
4287 "FILE 1920x1080 422 Planar 10 Bit 2398p",
4288 "FILE 1920x1080 422 Planar 10 Bit 24p",
4289 "FILE 1920x1080 422 Planar 10 Bit 25p",
4290 "FILE 1920x1080 422 Planar 10 Bit 29.97p",
4291 "FILE 1920x1080 422 Planar 10 Bit 30p",
4292 "FILE 1920x1080 422 Planar 10 Bit 50i",
4293 "FILE 1920x1080 422 Planar 10 Bit 50p",
4294 "FILE 1920x1080 422 Planar 10 Bit 59.94i",
4295 "FILE 1920x1080 422 Planar 10 Bit 59.94p",
4296 "FILE 1920x1080 422 Planar 10 Bit 60i",
4297 "FILE 1920x1080 422 Planar 10 Bit 60p",
4299 "FILE 2048x1080 420 Planar 8 Bit 2398p",
4300 "FILE 2048x1080 420 Planar 8 Bit 24p",
4301 "FILE 2048x1080 420 Planar 8 Bit 25p",
4302 "FILE 2048x1080 420 Planar 8 Bit 29.97p",
4303 "FILE 2048x1080 420 Planar 8 Bit 30p",
4304 "FILE 2048x1080 420 Planar 8 Bit 50p",
4305 "FILE 2048x1080 420 Planar 8 Bit 59.94p",
4306 "FILE 2048x1080 420 Planar 8 Bit 60p",
4308 "FILE 2048x1080 422 Planar 10 Bit 2398p",
4309 "FILE 2048x1080 422 Planar 10 Bit 24p",
4310 "FILE 2048x1080 422 Planar 10 Bit 25p",
4311 "FILE 2048x1080 422 Planar 10 Bit 29.97p",
4312 "FILE 2048x1080 422 Planar 10 Bit 30p",
4313 "FILE 2048x1080 422 Planar 10 Bit 50p",
4314 "FILE 2048x1080 422 Planar 10 Bit 59.94p",
4315 "FILE 2048x1080 422 Planar 10 Bit 60p",
4317 "FILE 3840x2160 420 Planar 8 Bit 2398p",
4318 "FILE 3840x2160 420 Planar 8 Bit 24p",
4319 "FILE 3840x2160 420 Planar 8 Bit 25p",
4320 "FILE 3840x2160 420 Planar 8 Bit 29.97p",
4321 "FILE 3840x2160 420 Planar 8 Bit 30p",
4322 "FILE 3840x2160 420 Planar 8 Bit 50p",
4323 "FILE 3840x2160 420 Planar 8 Bit 59.94p",
4324 "FILE 3840x2160 420 Planar 8 Bit 60p",
4326 "FILE 3840x2160 420 Planar 10 Bit 50p",
4327 "FILE 3840x2160 420 Planar 10 Bit 59.94p",
4328 "FILE 3840x2160 420 Planar 10 Bit 60p",
4330 "FILE 3840x2160 422 Planar 8 Bit 2398p",
4331 "FILE 3840x2160 422 Planar 8 Bit 24p",
4332 "FILE 3840x2160 422 Planar 8 Bit 25p",
4333 "FILE 3840x2160 422 Planar 8 Bit 29.97p",
4334 "FILE 3840x2160 422 Planar 8 Bit 30p",
4335 "FILE 3840x2160 422 Planar 8 Bit 50p",
4336 "FILE 3840x2160 422 Planar 8 Bit 59.94p",
4337 "FILE 3840x2160 422 Planar 8 Bit 60p",
4339 "FILE 3840x2160 422 Planar 10 Bit 2398p",
4340 "FILE 3840x2160 422 Planar 10 Bit 24p",
4341 "FILE 3840x2160 422 Planar 10 Bit 25p",
4342 "FILE 3840x2160 422 Planar 10 Bit 29.97p",
4343 "FILE 3840x2160 422 Planar 10 Bit 30p",
4344 "FILE 3840x2160 422 Planar 10 Bit 50p",
4345 "FILE 3840x2160 422 Planar 10 Bit 59.94p",
4346 "FILE 3840x2160 422 Planar 10 Bit 60p",
4348 "FILE 4096x2160 420 Planar 10 Bit 5994p",
4349 "FILE 4096x2160 420 Planar 10 Bit 60p",
4350 "FILE 4096x2160 422 Planar 10 Bit 50p",
4351 "FILE 4096x2160 422 Planar 10 Bit 5994p IOnly",
4352 "FILE 4096x2160 422 Planar 10 Bit 60p IOnly",
4354 "VIF 720x480 420 Planar 8 Bit 59.94i",
4355 "VIF 720x480 420 Planar 8 Bit 59.94p",
4356 "VIF 720x480 420 Planar 8 Bit 60i",
4357 "VIF 720x480 420 Planar 8 Bit 60p",
4358 "VIF 720x480 422 Planar 10 Bit 59.94i",
4359 "VIF 720x480 422 Planar 10 Bit 59.94p",
4360 "VIF 720x480 422 Planar 10 Bit 60i",
4361 "VIF 720x480 422 Planar 10 Bit 60p",
4363 "VIF 720x576 420 Planar 8 Bit 50i",
4364 "VIF 720x576 420 Planar 8 Bit 50p",
4365 "VIF 720x576 422 Planar 10 Bit 50i",
4366 "VIF 720x576 422 Planar 10 Bit 50p",
4368 "VIF 1280x720 420 Planar 8 Bit 50p",
4369 "VIF 1280x720 420 Planar 8 Bit 59.94p",
4370 "VIF 1280x720 420 Planar 8 Bit 60p",
4371 "VIF 1280x720 422 Planar 10 Bit 50p",
4372 "VIF 1280x720 422 Planar 10 Bit 59.94p",
4373 "VIF 1280x720 422 Planar 10 Bit 60p",
4375 "VIF 1920x1080 420 Planar 8 Bit 50i",
4376 "VIF 1920x1080 420 Planar 8 Bit 50p",
4377 "VIF 1920x1080 420 Planar 8 Bit 59.94i",
4378 "VIF 1920x1080 420 Planar 8 Bit 59.94p",
4379 "VIF 1920x1080 420 Planar 8 Bit 60i",
4380 "VIF 1920x1080 420 Planar 8 Bit 60p",
4381 "VIF 1920x1080 420 Planar 10 Bit 50i",
4382 "VIF 1920x1080 420 Planar 10 Bit 50p",
4383 "VIF 1920x1080 420 Planar 10 Bit 59.94i",
4384 "VIF 1920x1080 420 Planar 10 Bit 59.94p",
4385 "VIF 1920x1080 420 Planar 10 Bit 60i",
4386 "VIF 1920x1080 420 Planar 10 Bit 60p",
4387 "VIF 1920x1080 422 Planar 10 Bit 59.94i",
4388 "VIF 1920x1080 422 Planar 10 Bit 59.94p",
4389 "VIF 1920x1080 422 Planar 10 Bit 60i",
4390 "VIF 1920x1080 422 Planar 10 Bit 60p",
4392 "VIF 3840x2160 420 Planar 8 Bit 30p",
4393 "VIF 3840x2160 420 Planar 8 Bit 50p",
4394 "VIF 3840x2160 420 Planar 8 Bit 59.94p",
4395 "VIF 3840x2160 420 Planar 8 Bit 60p",
4396 "VIF 3840x2160 420 Planar 10 Bit 50p",
4397 "VIF 3840x2160 420 Planar 10 Bit 59.94p",
4398 "VIF 3840x2160 420 Planar 10 Bit 60p",
4400 "VIF 3840x2160 422 Planar 10 Bit 30p",
4401 "VIF 3840x2160 422 Planar 10 Bit 50p",
4402 "VIF 3840x2160 422 Planar 10 Bit 59.94p",
4403 "VIF 3840x2160 422 Planar 10 Bit 60p",
4409 int iNumChans,
bool bKeepAudio24Bits)
4425 UWord * puwOut =
reinterpret_cast<UWord*
>(pSR);
4429 int iNumSamples = iNumBytes / SAMPLE_SIZE;
4430 int iMod = (iNumBytes % SAMPLE_SIZE) / 4;
4448 if (bKeepAudio24Bits)
4450 for (
int s = 0; s < iNumSamples; s++)
4452 for (
int c = iChan0; c < iChan0 + iNumChans; c++)
4462 for (
int s = 0; s < iNumSamples; s++)
4464 for (
int c = iChan0; c < iChan0 + iNumChans; c++)
4466 *puwOut++ =
UWord(pIn[c] >> 16);
4479 #define M_PI (3.14159265358979323846)
4485 ULWord & inOutCurrentSample,
4486 const ULWord inNumSamples,
4487 const double inSampleRate,
4488 const double inAmplitude,
4489 const double inFrequency,
4490 const ULWord inNumBitsPerSample,
4491 const bool inByteSwap,
4492 const ULWord inNumChannels)
4494 outNumBytesWritten = 0;
4495 if (inAudioBuffer.
IsNULL())
4498 const ULWord numBytes (4 * inNumSamples * inNumChannels);
4502 double j (inOutCurrentSample);
4503 const double cycleLength (inSampleRate / inFrequency);
4504 const double scale (
double(
ULWord(1 << (inNumBitsPerSample - 1))) - 1.0);
4505 ULWord * pAudioBuffer(inAudioBuffer);
4508 for (
ULWord i(0); i < inNumSamples; i++)
4510 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4511 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4516 for (
ULWord channel(0); channel < inNumChannels; channel++)
4517 *pAudioBuffer++ =
ULWord(value);
4520 if (j > cycleLength)
4522 inOutCurrentSample++;
4525 outNumBytesWritten = numBytes;
4532 ULWord & inOutCurrentSample,
4533 const ULWord inNumSamples,
4534 const double inSampleRate,
4535 const double inAmplitude,
4536 const double inFrequency,
4538 const bool inByteSwap,
4539 const ULWord inNumChannels)
4541 double j (inOutCurrentSample);
4542 const double cycleLength (inSampleRate / inFrequency);
4543 const double scale (
double (
ULWord (1 << (inNumBits - 1))) - 1.0);
4547 for (
ULWord i = 0; i < inNumSamples; i++)
4549 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4550 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4555 for (
ULWord channel = 0; channel < inNumChannels; channel++)
4556 *pAudioBuffer++ =
ULWord(value);
4559 if (j > cycleLength)
4561 inOutCurrentSample++;
4565 return inNumSamples * 4 * inNumChannels;
4571 ULWord & inOutCurrentSample,
4572 const ULWord inNumSamples,
4573 const double inSampleRate,
4574 const double inAmplitude,
4575 const double inFrequency,
4577 const bool inByteSwap,
4578 const ULWord inNumChannels)
4580 double j (inOutCurrentSample);
4581 const double cycleLength (inSampleRate / inFrequency);
4582 const double scale (
double (
ULWord (1 << (inNumBits - 1))) - 1.0);
4586 for (
ULWord i(0); i < inNumSamples; i++)
4588 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4589 Word value =
Word((nextFloat * scale) +
double(0.5));
4594 for (
ULWord channel(0); channel < inNumChannels; channel++)
4595 *pAudioBuffer++ =
UWord(value);
4598 if (j > cycleLength)
4600 inOutCurrentSample++;
4604 return inNumSamples * 4 * inNumChannels;
4610 ULWord & inOutCurrentSample,
4611 const ULWord inNumSamples,
4612 const double inSampleRate,
4613 const double * pInAmplitudes,
4614 const double * pInFrequencies,
4616 const bool inByteSwap,
4617 const ULWord inNumChannels)
4621 const double scale (
double(
ULWord (1 << (inNumBits - 1))) - 1.0);
4623 for (
ULWord channel(0); channel < inNumChannels; channel++)
4625 cycleLength[channel] = inSampleRate / pInFrequencies[channel];
4626 j [channel] = inOutCurrentSample;
4629 if (pAudioBuffer && pInAmplitudes && pInFrequencies)
4631 for (
ULWord i(0); i < inNumSamples; i++)
4633 for (
ULWord channel(0); channel < inNumChannels; channel++)
4635 const double nextFloat = double(::sin(j[channel] / cycleLength[channel] * (
M_PI * 2.0)) * pInAmplitudes[channel]);
4636 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4641 *pAudioBuffer++ =
ULWord(value);
4644 if (j[channel] > cycleLength[channel])
4645 j[channel] -= cycleLength[channel];
4648 inOutCurrentSample++;
4652 return inNumSamples * 4 * inNumChannels;
4658 ULWord & inOutCurrentSample,
4659 const ULWord inNumSamples,
4661 const bool inEndianConvert,
4662 const ULWord inNumChannels)
4665 for (
ULWord i(0); i < inNumSamples; i++)
4667 ULWord value ((inOutCurrentSample % inModulus) << 16);
4668 if (inEndianConvert)
4670 for (
ULWord channel(0); channel < inNumChannels; channel++)
4671 *pAudioBuffer++ = value;
4672 inOutCurrentSample++;
4674 return inNumSamples * 4 * inNumChannels;
4749 case DEVICE_ID_TTAP:
return inForRetailDisplay ?
"T-TAP" :
"TTap";
4758 return inForRetailDisplay ?
"Unknown" :
"???";
4775 switch (inCrosspointChannel)
4959 return gInputSourceToEmbeddedAudioInputs [inInputSource];
4985 return gChannelToInputChannelSpec [inChannel];
4996 return gChannelToOutputChannelSpec [inChannel];
5081 return gInputSourceToChannelSpec [inInputSource];
5105 return gInputSourceToReferenceSource [inInputSource];
5129 return gInputSourceToChannel [inInputSource];
5153 return gInputSourceToAudioSystem [inInputSource];
5191 return inEmbeddedLTC ? gInputSourceToLTCIndex [inInputSource] : gInputSourceToTCIndex [inInputSource];
5209 switch (inSourceType)
5228 return gOutputDestToChannel [inOutputDest];
5254 return gChannelToOutputDest [inChannel];
5263 return inTargetFormat;
5273 if (inFormat1 == inFormat2)
5284 default:
return false;
5299 return sSDIInputSources[inIndex0];
5303 return sHDMIInputSources[inIndex0];
5307 return sANLGInputSources[inIndex0];
5341 static const ULWord sInputSourcesIndexes [] = { 0,
5343 0, 1, 2, 3, 4, 5, 6, 7 };
5344 if (
size_t(inValue) <
sizeof(sInputSourcesIndexes) /
sizeof(
ULWord))
5345 return sInputSourcesIndexes [inValue];
5354 static const ULWord gFrameSizeToByteCount[] = { 2 , 4 , 8 , 16 ,
5360 return gFrameSizeToByteCount [inFrameSize] * 1024 * 1024;
5369 static const ULWord gBufferSizeToByteCount[] = { 1 * 1024*1024, 4 * 1024*1024, 2 * 1024*1024, 3 * 1024*1024, 0 };
5371 return gBufferSizeToByteCount[inBufferSize];
5415 if (iter != family.end())
5416 return *(family.begin());
5424 if (inFrameRate1 == inFrameRate2)
5436 return frFamily1 == frFamily2;
5692 switch( conversionMode )
5736 switch( conversionMode )
5776 return outputFormat;
5782 return inOutStream << inFrameDimensions.Width() <<
"Wx" << inFrameDimensions.Height() <<
"H";
5788 return inSmpteLineNumber.
Print (inOutStream);
5814 oss << (inCompactDisplay ?
"AudSys" :
"NTV2_AUDIOSYSTEM_") << (inValue + 1);
5816 oss << (inCompactDisplay ?
"NoAudio" :
"NTV2_AUDIOSYSTEM_INVALID");
5872 std::ostringstream oss;
6215 #if !defined(NTV2_DEPRECATE_16_0)
6219 #if !defined(_DEBUG)
6428 inOutStr <<
"[" << inObj.size () <<
" regs: ";
6432 if (++iter != inObj.end ())
6435 return inOutStr <<
"]";
6441 inOutSet.insert (inRegisterNumber);
6487 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6488 <<
DEC(inValue * 2 + 1) << (inCompactDisplay ?
"-" :
"_") <<
DEC(inValue * 2 + 2);
6489 else if (!inCompactDisplay)
6490 oss <<
"NTV2_AUDIO_CHANNEL_PAIR_INVALID";
6499 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6500 << (inValue * 4 + 1) << (inCompactDisplay ?
"-" :
"_") << (inValue * 4 + 4);
6501 else if (!inCompactDisplay)
6502 oss <<
"NTV2_AUDIO_CHANNEL_QUAD_INVALID";
6511 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6512 << (inValue * 8 + 1) << (inCompactDisplay ?
"-" :
"_") << (inValue * 8 + 8);
6513 else if (!inCompactDisplay)
6514 oss <<
"NTV2_AUDIO_CHANNEL_OCTET_INVALID";
6957 default:
return "Unknown";
7032 if (inForRetailDisplay)
7251 #if !defined(NTV2_DEPRECATE_16_0)
7257 case NTV2_NUM_FRAMERATES: return ""; //special case
7350 switch(inInterruptEnumValue)
7400 switch (inIpErrorEnumValue)
7440 default:
return "Unknown IP error";
7446 return inOutStream <<
"DBB=0x" << hex << setw (8) << setfill (
'0') << inObj.
DBB
7447 <<
"|HI=0x" << hex << setw (8) << setfill (
'0') << inObj.
High
7448 <<
"|LO=0x" << hex << setw (8) << setfill (
'0') << inObj.
Low
7533 if (inBitfileName == deviceBitfileName)
7556 typedef map<string, NTV2DeviceID> BitfileName2DevID;
7557 typedef BitfileName2DevID::const_iterator BitfileName2DevCI;
7558 static BitfileName2DevID sBitfileName2DevID;
7559 static AJALock sBFN2DevIDMutex;
7561 if (sBitfileName2DevID.empty())
7567 if (!bitFileName.empty())
7568 sBitfileName2DevID[bitFileName] = *it;
7571 BitfileName2DevCI it(sBitfileName2DevID.find(inBitfileName));
7578 #if defined (AJAMac)
7579 return "/Library/Application Support/AJA/Firmware";
7580 #elif defined (MSWindows)
7582 DWORD bufferSize (1024);
7583 char * lpData (
new char [bufferSize]);
7585 if (RegOpenKeyExA (HKEY_LOCAL_MACHINE,
"Software\\AJA",
NULL, KEY_READ, &hKey) == ERROR_SUCCESS
7586 && RegQueryValueExA (hKey,
"firmwarePath",
NULL,
NULL, (LPBYTE) lpData, &bufferSize) == ERROR_SUCCESS)
7587 return string (lpData);
7590 #elif defined (AJALinux)
7591 return "/opt/aja/firmware";
7678 for (
unsigned ndx(0); ndx <
sizeof(sValidDeviceIDs) /
sizeof(
NTV2DeviceID); ndx++)
7683 bool insertIt (
false);
7711 result.insert (deviceID);
7745 switch (inVersionComponent)
7865 return "(bad bitfile type)";
7970 if (it != inList.end())
7998 if (++it != inData.end())
7999 inOutStream <<
", ";
8009 if (++it != inData.end())
8010 inOutStream <<
", ";
8028 result.insert (it->registerNumber);
8034 outGone.clear(); outSame.clear(); outNew.clear();
8035 set_difference (inBefore.begin(), inBefore.end(), inAfter.begin(), inAfter.end(), std::inserter(outGone, outGone.begin()));
8036 set_difference (inAfter.begin(), inAfter.end(), inBefore.begin(), inBefore.end(), std::inserter(outNew, outNew.begin()));
8037 set_intersection (inBefore.begin(), inBefore.end(), inAfter.begin(), inAfter.end(), std::inserter(outSame, outSame.begin()));
8044 if (&inBefore == &inAfter)
8046 if (inBefore.size() != inAfter.size())
8049 set_intersection (before.begin(), before.end(), after.begin(), after.end(),
8050 std::inserter(commonRegNums, commonRegNums.begin()));
8055 if (beforeIt != inBefore.end() && afterIt != inAfter.end() && beforeIt->registerValue != afterIt->registerValue)
8056 outChanged.insert(*it);
8059 else if (inBefore.at(0).registerNumber == inAfter.at(0).registerNumber
8060 && inBefore.at(inBefore.size()-1).registerNumber == inAfter.at(inAfter.size()-1).registerNumber)
8062 for (
size_t ndx(0); ndx < inBefore.size(); ndx++)
8063 if (inBefore[ndx].registerValue != inAfter[ndx].registerValue)
8064 outChanged.insert(inBefore[ndx].registerNumber);
8066 else for (
size_t ndx(0); ndx < inBefore.size(); ndx++)
8078 if (it != inAfter.end())
8083 return !outChanged.empty();
8088 { ostringstream oss;
8089 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
8091 const char chr(inStr.at(
size_t(ndx)));
8092 if (::isalnum(chr) || chr ==
'-' || chr ==
'_' || chr ==
'.' || chr ==
'~')
8095 oss <<
"%" <<
HEX0N(
unsigned(chr),2);
8101 { ostringstream oss;
8102 unsigned hexNum(0), state(0);
8103 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
8105 const char chr(inStr.at(
size_t(ndx)));
8109 if (::isalnum(chr) || chr ==
'-' || chr ==
'_' || chr ==
'.' || chr ==
'~')
8115 if (chr >=
'A' && chr <=
'F')
8116 hexNum = unsigned(chr + 10 -
'A') << 4;
8117 else if (chr >=
'a' && chr <=
'f')
8118 hexNum = unsigned(chr + 10 -
'a') << 4;
8119 else if (chr >=
'0' && chr <=
'9')
8120 hexNum = unsigned(chr -
'0') << 4;
8126 if (chr >=
'A' && chr <=
'F')
8127 hexNum += unsigned(chr + 10 -
'A');
8128 else if (chr >=
'a' && chr <=
'f')
8129 hexNum += unsigned(chr + 10 -
'a');
8130 else if (chr >=
'0' && chr <=
'9')
8131 hexNum += unsigned(chr -
'0');
8132 oss << char(hexNum);
8145 if (inSerNumStr.length() < 8 || inSerNumStr.length() > 9)
8147 string serNumStr(inSerNumStr);
8148 if (inSerNumStr.length() == 9)
8149 serNumStr.erase(0,1);
8151 for (
size_t ndx(0); ndx < serNumStr.length(); ndx++)
8153 const char ch (serNumStr.at(ndx));
8155 if ( ! ( ( (ch >=
'0') && (ch <=
'9') ) ||
8156 ( (ch >=
'A') && (ch <=
'Z') ) ||
8157 ( (ch >=
'a') && (ch <=
'z') ) ||
8158 (ch ==
' ') || (ch ==
'-') ) )
8160 serNum |= uint64_t(ch) << (ndx*8);
8168 const ULWord serialNumHigh (inSerNum >> 32);
8169 const ULWord serialNumLow (inSerNum & 0x00000000FFFFFFFF);
8172 serialNum[0] = char((serialNumLow & 0x000000FF) );
8173 serialNum[1] = char((serialNumLow & 0x0000FF00) >> 8);
8174 serialNum[2] = char((serialNumLow & 0x00FF0000) >> 16);
8175 serialNum[3] = char((serialNumLow & 0xFF000000) >> 24);
8176 serialNum[4] = char((serialNumHigh & 0x000000FF) );
8177 serialNum[5] = char((serialNumHigh & 0x0000FF00) >> 8);
8178 serialNum[6] = char((serialNumHigh & 0x00FF0000) >> 16);
8179 serialNum[7] = char((serialNumHigh & 0xFF000000) >> 24);
8180 serialNum[8] =
'\0';
8182 for (
unsigned ndx(0); ndx < 8; ndx++)
8184 if (serialNum[ndx] == 0)
8192 if ( ! ( ( (serialNum[ndx] >=
'0') && (serialNum[ndx] <=
'9') ) ||
8193 ( (serialNum[ndx] >=
'A') && (serialNum[ndx] <=
'Z') ) ||
8194 ( (serialNum[ndx] >=
'a') && (serialNum[ndx] <=
'z') ) ||
8195 (serialNum[ndx] ==
' ') || (serialNum[ndx] ==
'-') ) )
8201 #if defined (AJAMac)
8211 outMaj = outMin = outPt = outBld = outType = 0;
8218 const string key(
"<key>CFBundleShortVersionString</key>");
8219 for (
string line; std::getline(ifs, line); )
8221 size_t keyPos(line.find(key));
8222 if (keyPos == string::npos)
8224 if (!std::getline(ifs, line))
8227 size_t startPos(line.find(
"<string>")), endPos(line.find(
"</string>"));
8228 if (startPos == string::npos || endPos == string::npos)
8231 if (endPos < startPos)
8233 string versStr(line.substr(startPos, endPos-startPos));
8236 if (versComps.size() < 3 || versComps.size() > 4)
8238 const string sBuildTypes(
"_bad");
8239 for (
size_t bt(1); bt < 4; bt++)
8240 if (versComps.at(2).find(sBuildTypes[bt]) != string::npos)
8242 aja::split(versComps.at(2), sBuildTypes[bt], lastComps);
8243 versComps.erase(versComps.begin()+2);
8244 versComps.push_back(lastComps.at(0));
8246 outType =
UWord(bt);
8249 for (
size_t ndx(0); ndx < versComps.size(); ndx++)
8251 if (versComps.at(ndx).empty())
8260 else if (ndx == 3 && outType == 0)
@ NTV2_XptFrameBuffer6YUV
@ NTV2_1080i_5000to1080psf_2500
@ NTV2_XptFrameBuffer8_DS2RGB
@ M31_FILE_1280X720_420_8_30p
@ NTV2_FORMAT_FIRST_UHD2_DEF_FORMAT
@ NTV2_MAX_NUM_DownConvertModes
NTV2FrameRate GetFrameRateFamily(const NTV2FrameRate inFrameRate)
void CopyToQuadrant(uint8_t *srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t dstQuadrant, uint8_t *dstBuffer, uint32_t quad13Offset)
#define NTV2_IS_TALLER_VANC_GEOMETRY(__g__)
@ NTV2_REFERENCE_HDMI_INPUT2
Specifies the HDMI In 2 connector.
bool NTV2DeviceCanDoCapture(const NTV2DeviceID inDeviceID)
bool NTV2IsCompatibleBitfileName(const string &inBitfileName, const NTV2DeviceID inDeviceID)
@ NTV2CROSSPOINT_CHANNEL4
@ NTV2_FORMAT_3840x2160p_6000
std::string NTV2IpErrorEnumToString(const NTV2IpError inIpErrorEnumValue)
NTV2InputSource NTV2TimecodeIndexToInputSource(const NTV2TCIndex inTCIndex)
Converts the given NTV2TCIndex value into the appropriate NTV2InputSource value.
@ NTV2_XptFrameBuffer4YUV
@ NTV2_FBF_10BIT_YCBCR_420PL3_LE
See 3-Plane 10-Bit YCbCr 4:2:0 ('I420_10LE' a.k.a. 'YUV-P420-L10').
@ NTV2_XptDualLinkIn3DSInput
@ NTV2_FORMAT_4096x2160psf_2500
bool NTV2DeviceCanDo12GSDI(const NTV2DeviceID inDeviceID)
@ NTV2IpErrCannotGetMacAddress
void UnPack10BitDPXtoForRP215(UWord *rawrp215Buffer, ULWord *DPXLinebuffer, ULWord numPixels)
@ DEVICE_ID_KONALHIDVI
See KONA LHi.
@ NTV2_XptMixer4BGKeyInput
unsigned long stoul(const std::string &str, std::size_t *idx, int base)
@ NTV2_BITFILE_KONA5_OE3_MAIN
@ NTV2_XptMixer3FGVidInput
@ NTV2_FORMAT_4x1920x1080p_6000
uint16_t maxContentLightLevel
@ NTV2WidgetType_HDMIOutV5
@ NTV2_1080i_5994to1080psf_2997
@ M31_FILE_3840X2160_420_8_5994p
string NTV2M31VideoPresetToString(const M31VideoPreset inValue, const bool inForRetailDisplay)
NTV2RegReadsConstIter FindFirstMatchingRegisterNumber(const uint32_t inRegNum, const NTV2RegReads &inRegInfos)
Returns a const iterator to the first entry in the NTV2RegInfo collection with a matching register nu...
@ NTV2_INPUTSOURCE_SDI4
Identifies the 4th SDI video input.
string NTV2AudioChannelQuadToString(const NTV2Audio4ChannelSelect inValue, const bool inCompactDisplay)
@ NTV2_FG_4x2048x1080
4096x2160, for 4K, NTV2_VANCMODE_OFF
@ NTV2_BITFILE_KONAIP_2110
@ NTV2_FORMAT_3840x2160psf_2500
void PackRGB10BitFor10BitRGBPacked(RGBAlpha10BitPixel *pBuffer, const ULWord inNumPixels)
@ NTV2_FORMAT_1080psf_2398
static const NTV2TCIndex gChanVITC2[]
@ NTV2_TCINDEX_SDI4
SDI 4 embedded VITC.
@ NTV2WidgetType_DCIMixer
@ NTV2_XptMultiLinkOut2DS3
New in SDK 16.0.
@ M31_FILE_1280X720_420_8_60p
@ NTV2_REFERENCE_INPUT3
Specifies the SDI In 3 connector.
@ NTV2_BITFILE_KONA5_3DLUT_MAIN
#define AJA_NTV2_SDK_BUILD_DATETIME
The date and time the SDK was built, in ISO-8601 format.
@ NTV2_XptDualLinkOut7Input
@ NTV2_FORMAT_4096x2160p_2400
@ NTV2CROSSPOINT_CHANNEL8
@ NTV2_WgtStereoCompressor
@ M31_FILE_1920X1080_422_10_24p
void UnpackLine_10BitYUVto16BitYUV(const ULWord *pIn10BitYUVLine, UWord *pOut16BitYUVLine, const ULWord inNumPixels)
Unpacks a line of 10-bit-per-component YCbCr video into 16-bit-per-component YCbCr (NTV2_FBF_10BIT_YC...
@ M31_FILE_1920X1080_420_8_50i
@ NTV2_FBF_NUMFRAMEBUFFERFORMATS
@ M31_FILE_2048X1080_422_10_50p
ULWordSetConstIter NTV2RegNumSetConstIter
A const iterator that iterates over a set of distinct NTV2RegisterNumbers.
@ NTV2_XptDuallinkOut8DS2
@ NTV2_FBF_ARGB
See 8-Bit ARGB, RGBA, ABGR Formats.
@ NTV2_IOKINDS_HDMI
Specifies HDMI input/output kinds.
@ NTV2WidgetType_DualLinkV1In
@ NTV2_FBF_10BIT_YCBCR_420PL2
10-Bit 4:2:0 2-Plane YCbCr
@ DEVICE_ID_KONAIP_2110
See KONA IP.
static const UByte * GetReadAddress_2vuy(const UByte *pInFrameBuffer, const ULWord inBytesPerVertLine, const UWord inVertLineOffset, const UWord inHorzPixelOffset, const UWord inBytesPerHorzPixel)
uint8_t electroOpticalTransferFunction
@ NTV2_BITFILE_KONAIP_4CH_2SFP
@ NTV2_AUDIO_LOOPBACK_OFF
Embeds silence (zeroes) into the data stream.
bool IsMultiFormatCompatible(const NTV2FrameRate inFrameRate1, const NTV2FrameRate inFrameRate2)
Compares two frame rates and returns true if they are "compatible" (with respect to a multiformat-cap...
bool AddAudioTone(ULWord &outNumBytesWritten, NTV2Buffer &inAudioBuffer, ULWord &inOutCurrentSample, const ULWord inNumSamples, const double inSampleRate, const double inAmplitude, const double inFrequency, const ULWord inNumBitsPerSample, const bool inByteSwap, const ULWord inNumChannels)
Fills the given buffer with 32-bit (ULWord) audio tone samples.
@ NTV2_720p_5994to1080i_5994
@ NTV2_FORMAT_4096x2160p_12000
UWord NTV2DeviceGetNumHDMIVideoInputs(const NTV2DeviceID inDeviceID)
@ NTV2_OUTPUTDESTINATION_HDMI1
bool IsRaw(const NTV2FrameBufferFormat frameBufferFormat)
@ M31_VIF_3840X2160_422_10_50p
@ NTV2_XptStereoLeftInput
@ NTV2_CHANNEL8
Specifies channel or FrameStore 8 (or the 8th item).
@ DEVICE_ID_KONAHDMI
See KONA HDMI.
@ NTV2MIXERINPUTCONTROL_UNSHAPED
@ NTV2_XptMultiLinkOut2Input
New in SDK 16.0.
@ NTV2_INPUTSOURCE_SDI6
Identifies the 6th SDI video input.
NTV2DeviceIDList::const_iterator NTV2DeviceIDListConstIter
A convenient const iterator for NTV2DeviceIDList.
#define NTV2_IS_VALID_NTV2FrameGeometry(__s__)
@ AUTOCIRCVIDPROCMODE_HORZWIPE
@ NTV2_STANDARD_2Kx1080p
Identifies SMPTE HD 2K1080p.
@ NTV2_BITFILE_SOJI_OE7_MAIN
@ M31_FILE_3840X2160_420_8_60p
@ NTV2_REFERENCE_SFP1_PTP
Specifies the PTP source on SFP 1.
@ NTV2_FORMAT_4x4096x2160p_4800
@ NTV2WidgetType_UpDownConverter
@ NTV2_REGWRITE_IMMEDIATE
Register changes take effect immediately, without waiting for a field or frame VBI.
void Convert8BitYCbCrToYUY2(UByte *ycbcrBuffer, ULWord numPixels)
@ NTV2_XptFrameBuffer1_DS2YUV
NTV2HDMIBitDepth
Indicates or specifies the HDMI video bit depth.
@ NTV2_XptSDIOut4InputDS2
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
@ NTV2_FORMAT_END_UHD2_FULL_DEF_FORMATS
NTV2OutputDestination
Identifies a specific video output destination.
@ DEVICE_ID_CORVID44_2X4K
See Corvid 44 12G.
@ NTV2MIXERMODE_INVALID
Invalid/uninitialized.
@ NTV2_REFERENCE_INPUT1
Specifies the SDI In 1 connector.
double GetAudioSamplesPerSecond(const NTV2AudioRate inAudioRate)
Returns the audio sample rate as a number of audio samples per second.
NTV2AudioSource NTV2InputSourceToAudioSource(const NTV2InputSource inInputSource)
ULWord GetDisplayHeight(const NTV2VideoFormat inVideoFormat)
@ M31_FILE_3840X2160_420_8_50p
@ NTV2_AUDIOSYSTEM_7
This identifies the 7th Audio System.
@ NTV2_CHANNEL2
Specifies channel or FrameStore 2 (or the 2nd item).
@ NTV2_FORMAT_4x4096x2160p_2398
#define NTV2_IS_VALID_AUDIO_CHANNEL_OCTET(__p__)
NTV2RegNumSet ToRegNumSet(const NTV2RegisterReads &inRegReads)
@ NTV2_FBF_12BIT_RGB_PACKED
See 12-Bit Packed RGB.
@ DEVICE_ID_KONA5_OE9
See KONA 5.
ULWord GetFirstActiveLine(const NTV2FieldID inRasterFieldID=NTV2_FIELD0) const
@ NTV2_REGWRITE_SYNCTOFIELD_AFTER10LINES
Register changes take effect after 10 lines after the next field VBI (not commonly used).
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_4
@ NTV2_625_2500to720p_5000
@ M31_VIF_3840X2160_420_10_50p
@ NTV2_HDMIAudio2Channels
2 audio channels
@ NTV2_1080i2398to525_2398
@ NTV2_XptDualLinkIn2DSInput
@ NTV2_XptFrameBuffer2RGB
@ NTV2WidgetType_SDIIn12G
@ NTV2_XptMixer2BGKeyInput
NTV2TCIndex NTV2ChannelToTimecodeIndex(const NTV2Channel inChannel, const bool inEmbeddedLTC, const bool inIsF2)
Converts the given NTV2Channel value into the equivalent NTV2TCIndex value.
@ NTV2_MAX_NUM_AudioSystemEnums
Declares a number of pixel format transcoder functions.
@ M31_FILE_3840X2160_422_8_2997p
@ NTV2WidgetType_SMPTE425Mux
@ NTV2_FG_1920x1114
1920x1080, NTV2_VANCMODE_TALLER
#define NTV2_VIDEO_FORMAT_IS_J2K_SUPPORTED(__f__)
@ NTV2_NUM_REFERENCE_INPUTS
@ NTV2_MAX_NUM_EmbeddedAudioInputs
string NTV2MixerInputControlToString(const NTV2MixerKeyerInputControl inValue, const bool inCompactDisplay)
@ NTV2IpErrSFP2NotConfigured
Declares device capability functions.
@ NTV2_FG_720x576
720x576, for PAL 625i, NTV2_VANCMODE_OFF
string NTV2MixerKeyerModeToString(const NTV2MixerKeyerMode inValue, const bool inCompactDisplay)
@ NTV2_FG_720x508
720x486, for NTSC 525i, NTV2_VANCMODE_TALL
NTV2InputSource NTV2ChannelToInputSource(const NTV2Channel inChannel, const NTV2IOKinds inSourceType)
@ NTV2_XptCompressionModule
@ NTV2_XptMixer2FGKeyInput
@ NTV2_1080i_2500to625_2500
@ NTV2_FORMAT_4096x2160p_11988
@ NTV2_XptSDIOut3InputDS2
std::set< std::string > NTV2StringSet
@ M31_VIF_720X480_420_8_60i
std::string & strip(std::string &str, const std::string &ws)
@ NTV2Scan_PSF
Progressive Segmented Frame.
@ NTV2MIXERMODE_MIX
Overlays foreground video on top of background video.
#define AJA_NTV2_SDK_VERSION_POINT
The SDK "point" release version, an unsigned decimal integer.
@ NTV2_FBF_PRORES_HDV
Apple ProRes HDV.
@ M31_FILE_1280X720_420_8_25p
@ NTV2_FORMAT_4096x2160p_2500
@ AUTOCIRCVIDPROCMODE_KEY
#define NTV2_FBF_IS_RAW(__fbf__)
NTV2Standard GetQuarterSizedStandard(const NTV2Standard inStandard)
@ NTV2_FRAMERATE_1500
15 frames per second
@ NTV2_BITFILE_SOJI_OE4_MAIN
@ NTV2_TCINDEX_SDI2_2
SDI 2 embedded VITC 2.
std::set< NTV2TCIndex > NTV2TCIndexes
@ NTV2_FRAMERATE_6000
60 frames per second
#define NTV2UTILS_ENUM_CASE_RETURN_VAL_OR_ENUM_STR(condition, retail_name, enum_name)
@ NTV2_INPUTSOURCE_SDI7
Identifies the 7th SDI video input.
@ M31_FILE_720X480_420_8_5994i
std::vector< NTV2FrameRates > NTV2FrameRateFamilies
@ M31_VIF_3840X2160_422_10_30p
string NTV2InputCrosspointIDToString(const NTV2InputCrosspointID inValue, const bool inForRetailDisplay)
#define NTV2_VIDEO_FORMAT_HAS_PROGRESSIVE_PICTURE(__f__)
NTV2OutputDestination NTV2ChannelToOutputDestination(const NTV2Channel inChannel, const NTV2IOKinds inKinds)
Converts the given NTV2Channel value into its ordinary equivalent NTV2OutputDestination.
@ NTV2_REFERENCE_SFP2_PCR
Specifies the PCR source on SFP 2.
void ConvertARGBYCbCrToABGR(UByte *rgbaBuffer, ULWord numPixels)
@ NTV2_BITFILE_KONA5_OE6_MAIN
@ NTV2_FORMAT_525psf_2997
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
NTV2HDMIColorSpace
Indicates or specifies HDMI Color Space.
@ NTV2_FG_4x4096x2160
8192x4320, for 8K, NTV2_VANCMODE_OFF
@ NTV2WidgetType_DualLinkV2In
void Convert16BitARGBTo16BitRGB(RGBAlpha16BitPixel *rgbaLineBuffer, UWord *rgbLineBuffer, ULWord numPixels)
bool Fill8BitYCbCrVideoFrame(void *pBaseVideoAddress, const NTV2Standard inStandard, const NTV2FrameBufferFormat inFBF, const YCbCrPixel inPixelColor, const NTV2VANCMode inVancMode)
@ NTV2_525_2398to1080i_2398
Describes a user-space buffer on the host computer. I have an address and a length,...
@ NTV2_FORMAT_4x2048x1080p_4795
@ NTV2WidgetType_AnalogCompositeOut
Declares common audio macros and structs used in the SDK.
@ NTV2CROSSPOINT_CHANNEL1
string NTV2ModeToString(const NTV2Mode inValue, const bool inCompactDisplay)
@ NTV2_REFERENCE_INPUT7
Specifies the SDI In 7 connector.
@ NTV2_BITFILE_KONA5_OE11_MAIN
@ NTV2_XptDualLinkIn1Input
@ NTV2_FBF_10BIT_DPX_LE
10-Bit DPX Little-Endian
@ M31_FILE_3840X2160_420_8_2997p
static const INTERRUPT_ENUMS gChannelToInputInterrupt[]
ULWordSet NTV2RegisterNumberSet
A set of distinct ULWord values.
@ NTV2_XptSDIOut5InputDS2
@ NTV2_FORMAT_4096x2160psf_2398
static const NTV2TCIndex gChanATCLTC[]
@ M31_FILE_4096X2160_422_10_50p
@ NTV2_525_5994to525psf_2997
@ M31_FILE_1920X1080_422_10_2398p
@ NTV2_FORMAT_3840x2160p_5994_B
@ NTV2_BITFILE_KONA5_8K_MAIN
NTV2VideoFormat GetQuadSizedVideoFormat(const NTV2VideoFormat inVideoFormat, const bool isSquareDivision)
@ DEVICE_ID_KONA5
See KONA 5.
void split(const std::string &str, const char delim, std::vector< std::string > &elems)
@ M31_FILE_1920X1080_422_10_60p
@ M31_FILE_1280X720_420_8_24p
NTV2Standard GetStandardFromGeometry(const NTV2FrameGeometry inGeometry, const bool inIsProgressive)
ULWord GetByteCount(void) const
@ NTV2_AUDIOSYSTEM_4
This identifies the 4th Audio System.
@ NTV2_TCINDEX_SDI7_LTC
SDI 7 embedded ATC LTC.
#define NTV2_ASSERT(_expr_)
@ NTV2_DownConvertAnamorphic
string NTV2RegNumSetToString(const NTV2RegisterNumberSet &inObj)
@ NTV2_STANDARD_1080
Identifies SMPTE HD 1080i or 1080psf.
@ NTV2_STANDARD_3840x2160p
Identifies Ultra-High-Definition (UHD)
ULWord GetScaleFromFrameRate(const NTV2FrameRate inFrameRate)
string NTV2FrameBufferFormatToString(const NTV2FrameBufferFormat inValue, const bool inForRetailDisplay)
@ M31_FILE_3840X2160_422_8_5994p
virtual bool IsValid(void) const
@ M31_FILE_3840X2160_422_10_5994p
@ NTV2_FRAMERATE_2997
Fractional rate of 30,000 frames per 1,001 seconds.
@ NTV2_DEVICEKIND_INPUT
Specifies devices that input (capture).
@ NTV2_BITFILE_NUMBITFILETYPES
enum NTV2TCIndex NTV2TimecodeIndex
@ NTV2_TCINDEX_SDI8_2
SDI 8 embedded VITC 2.
@ NTV2_XptFrameBuffer3_DS2YUV
@ NTV2_VIDEOLIMITING_LEGALSDI
Identifies the "Legal SDI" mode (Ymax=0x3AC, Cmax=0x3C0)
@ NTV2_FORMAT_1080p_2K_6000_B
bool IsAlphaChannelFormat(const NTV2FrameBufferFormat format)
@ NTV2_FORMAT_4096x2160p_5000_B
@ M31_FILE_1280X720_422_10_24p
@ NTV2_FBF_RGBA
See 8-Bit ARGB, RGBA, ABGR Formats.
@ NTV2_STANDARD_625
Identifies SMPTE SD 625i.
@ NTV2_FORMAT_1080psf_2K_2398
string NTV2HDMIAudioChannelsToString(const NTV2HDMIAudioChannels inValue, const bool inCompact)
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_1
@ M31_FILE_4096X2160_420_10_5994p
@ NTV2_BITFILE_CORVID44_8K_MAIN
bool IsProgressiveTransport(const NTV2VideoFormat format)
@ NTV2_FORMAT_FIRST_4K_TSI_DEF_FORMAT
@ DEVICE_ID_IOX3
See Io X3.
@ NTV2_XptMixer3BGKeyInput
@ M31_FILE_2048X1080_422_10_5994p
static NTV2FrameRateFamilies sFRFamilies
@ NTV2_XptMultiLinkOut1Input
New in SDK 16.0.
NTV2Crosspoint GetNTV2CrosspointForIndex(const ULWord index)
@ NTV2_FG_2048x1080
2048x1080, for 2Kx1080p, NTV2_VANCMODE_OFF
bool PackLine_UWordSequenceTo10BitYUV(const UWordSequence &in16BitYUVLine, ULWord *pOut10BitYUVLine, const ULWord inNumPixels)
Packs a line of 16-bit-per-component YCbCr (NTV2_FBF_10BIT_YCBCR) video into 10-bit-per-component YCb...
@ NTV2_STANDARD_4096HFR
Identifies high frame-rate 4K.
@ NTV2_STANDARD_4096x2160p
Identifies 4K.
@ NTV2_1080i2398to525_2997
@ NTV2_BITFILE_KONA5_MAIN
@ M31_FILE_3840X2160_422_8_25p
@ NTV2_XptDualLinkIn8Input
@ NTV2_FORMAT_1080p_2K_4800_A
@ NTV2_FORMAT_4x2048x1080p_11988
@ NTV2_XptDualLinkIn5DSInput
@ NTV2_XptDuallinkOut7DS2
string PercentDecode(const string &inStr)
@ NTV2_AUDIO_FORMAT_DOLBY
@ NTV2_Wgt4KDownConverter
@ NTV2_XptFrameBuffer8YUV
@ NTV2_XptFrameBuffer4_DS2YUV
@ NTV2_XptFrameBuffer3YUV
@ NTV2_FRAMERATE_12000
120 frames per second
@ NTV2_DownConvertLetterbox
@ NTV2_FBF_48BIT_RGB
See 48-Bit RGB.
@ NTV2_OUTPUTDESTINATION_SDI2
ULWord AddAudioTestPattern(ULWord *pAudioBuffer, ULWord &inOutCurrentSample, const ULWord inNumSamples, const ULWord inModulus, const bool inEndianConvert, const ULWord inNumChannels)
std::string PrintLineNumber(const ULWord inLineOffset=0, const NTV2FieldID inRasterFieldID=NTV2_FIELD0) const
string NTV2FrameRateToString(const NTV2FrameRate inValue, const bool inForRetailDisplay)
@ NTV2_XptFrameBuffer3DS2Input
@ NTV2_AUDIO_MIC
Obtain audio samples from the device microphone input, if available.
@ DEVICE_ID_CORVID44_8KMK
See Corvid 44 12G.
@ NTV2_OUTPUTDESTINATION_SDI3
@ M31_VIF_3840X2160_422_10_5994p
@ DEVICE_ID_KONAIP_2110_RGB12
See KONA IP.
@ NTV2_BITFILE_IOIP_2110_RGB12
@ DEVICE_ID_CORVID22
See Corvid 22.
@ NTV2_FORMAT_4x1920x1080p_6000_B
@ DEVICE_ID_IOIP_2022
See Io IP.
#define NTV2_IS_VALID_TIMECODE_INDEX(__x__)
Defines a number of handy byte-swapping macros.
static bool CopyRaster20BytesPer16Pixels(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
@ NTV2_BITFILE_KONA5_8KMK_MAIN
NTV2HDMIAudioChannels
Indicates or specifies the HDMI audio channel count.
string NTV2DownConvertModeToString(const NTV2DownConvertMode inValue, const bool inCompact)
@ NTV2_MAX_NUM_BreakoutTypes
@ NTV2_FG_NUMFRAMEGEOMETRIES
@ NTV2_AUDIOSYSTEM_1
This identifies the first Audio System.
@ NTV2_SIGNALMASK_NONE
Output Black.
@ NTV2_WgtModuleTypeCount
@ NTV2_FORMAT_4x1920x1080psf_3000
#define AJA_NTV2_SDK_BUILD_TYPE
The SDK build type, where "a"=alpha, "b"=beta, "d"=development, ""=release.
UWord NTV2DeviceGetNumAnalogVideoInputs(const NTV2DeviceID inDeviceID)
@ DEVICE_ID_CORVIDHEVC
See Corvid HEVC.
@ NTV2_BITFILE_SOJI_OE1_MAIN
@ NTV2_FBF_8BIT_HDV
See 8-Bit HDV.
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_8
@ NTV2_BreakoutCableBNC
Identifies the AES/EBU audio breakout cable that has BNC connectors.
NTV2FrameGeometry GetQuarterSizedGeometry(const NTV2FrameGeometry inGeometry)
@ NTV2_FORMAT_1080p_2K_3000
@ NTV2_BITFILE_CORVID44_8KMK_MAIN
@ NTV2_FORMAT_4096x2160psf_2997
@ NTV2_FORMAT_4x2048x1080p_4795_B
@ M31_FILE_3840X2160_420_8_30p
@ NTV2_FORMAT_4x2048x1080p_2997
NTV2FrameGeometry GetGeometryFromStandard(const NTV2Standard inStandard)
NTV2Crosspoint NTV2InputSourceToChannelSpec(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2Crosspoint value.
#define NTV2_VIDEO_FORMAT_IS_B(__f__)
@ NTV2_FBF_10BIT_ARGB
10-Bit ARGB
@ AUTOCIRCVIDPROCMODE_VERTWIPE
@ M31_VIF_1920X1080_422_10_60i
@ NTV2_FBF_10BIT_YCBCRA
10-Bit YCbCrA
static const INTERRUPT_ENUMS gChannelToOutputInterrupt[]
bool IsRGBFormat(const NTV2FrameBufferFormat format)
#define NTV2_IS_VALID_AUDIO_BUFFER_SIZE(_x_)
@ DEVICE_ID_KONA5_8KMK
See KONA 5.
@ NTV2_BITFILE_IOEXPRESS_MAIN
#define NTV2_IS_2K_VIDEO_FORMAT(__f__)
@ NTV2_FORMAT_4x4096x2160p_2500
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
@ NTV2_TCINDEX_SDI4_2
SDI 4 embedded VITC 2.
@ NTV2_BITFILE_CORVID44_2X4K_MAIN
@ NTV2_XptFrameBuffer7_DS2RGB
@ NTV2_Xpt3DLUT1Input
New in SDK 16.0.
@ M31_FILE_1920X1080_420_8_25p
string NTV2AudioSourceToString(const NTV2AudioSource inValue, const bool inCompactDisplay)
@ NTV2_HDMIRangeSMPTE
Levels are 16 - 235 (SMPTE)
@ NTV2_FORMAT_4x4096x2160p_4795
@ NTV2_AncRgn_MonField1
Identifies the "monitor" or "auxiliary" Field 1 ancillary data region.
@ NTV2_XptAnalogOutCompositeOut
ULWord GetVideoActiveSize(const NTV2VideoFormat inVideoFormat, const NTV2FrameBufferFormat inFBFormat, const NTV2VANCMode inVancMode)
@ NTV2_FORMAT_4x1920x1080p_2997
@ NTV2_FORMAT_4x1920x1080p_2500
@ NTV2_AncRgn_Field2
Identifies the "normal" Field 2 ancillary data region.
@ NTV2_XptMixer3FGKeyInput
NTV2FieldID
These values are used to identify fields for interlaced video. See Field/Frame Interrupts and CNTV2Ca...
@ NTV2_FORMAT_4x2048x1080p_4800
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
@ NTV2_FORMAT_4x3840x2160p_2500
void ConvertLineto16BitRGB(UWord *ycbcrBuffer, RGBAlpha16BitPixel *rgbaBuffer, ULWord numPixels, bool fUseSDMatrix, bool fUseSMPTERange=false)
@ M31_VIF_3840X2160_420_8_50p
@ NTV2IpErrUllNotSupported
#define NTV2_VIDEO_FORMAT_IS_A(__f__)
@ NTV2_REFERENCE_SFP2_PTP
Specifies the PTP source on SFP 2.
Declares common video macros and structs used in the SDK.
@ NTV2_TCINDEX_SDI6
SDI 6 embedded VITC.
@ NTV2_REFERENCE_ANALOG_INPUT1
Specifies the Analog In 1 connector.
@ NTV2_FG_720x486
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_OFF
@ NTV2_525_5994to525_5994
ULWord GetIndexForNTV2CrosspointChannel(const NTV2Crosspoint channel)
@ NTV2_XptFrameBuffer1RGB
@ NTV2_FORMAT_FIRST_HIGH_DEF_FORMAT
#define NTV2UTILS_ENUM_CASE_RETURN_STR(enum_name)
string NTV2FramesizeToString(const NTV2Framesize inValue, const bool inCompactDisplay)
@ M31_VIF_1280X720_420_8_5994p
@ NTV2_XptDuallinkOut6DS2
@ NTV2_FORMAT_FIRST_UHD2_FULL_DEF_FORMAT
NTV2DeviceIDSet::const_iterator NTV2DeviceIDSetConstIter
A convenient const iterator for NTV2DeviceIDSet.
@ NTV2_AUDIOSYSTEM_8
This identifies the 8th Audio System.
#define NTV2_IS_2K_1080_VIDEO_FORMAT(__f__)
@ NTV2_FBF_10BIT_DPX
See 10-Bit RGB - DPX Format.
@ NTV2_XptSDIOut2InputDS2
#define NTV2_IS_VALID_OUTPUT_DEST(_dest_)
@ NTV2_1080p_2500to1080i_2500
@ M31_VIF_3840X2160_420_10_5994p
@ NTV2_XptFrameBuffer4Input
bool UnpackLine_10BitYUVtoU16s(vector< uint16_t > &outYCbCrLine, const NTV2Buffer &inFrameBuffer, const NTV2FormatDescriptor &inDescriptor, const UWord inLineOffset)
@ NTV2WidgetType_HDMIInV5
@ NTV2_FORMAT_4x3840x2160p_5000_B
void Make8BitBlackLine(UByte *lineData, ULWord numPixels, NTV2FrameBufferFormat fbFormat)
@ NTV2_XptSDIOut8InputDS2
bool SetRasterLinesBlack(const NTV2PixelFormat inPixelFormat, UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
Sets all or part of a destination raster image to legal black.
@ NTV2_XptFrameBuffer3Input
@ NTV2_INVALID_HDMI_AUDIO_CHANNELS
bool StringToSerialNum64(const string &inSerNumStr, uint64_t &outSerNum)
string NTV2UpConvertModeToString(const NTV2UpConvertMode inValue, const bool inCompact)
@ M31_FILE_720X480_420_8_60p
@ NTV2_FORMAT_4x2048x1080p_6000_B
@ NTV2_XptMultiLinkOut1DS1
New in SDK 16.0.
std::string setFromString(const std::string &inStr)
@ NTV2_XptDualLinkOut5Input
@ NTV2_SIGNALMASK_Y
Output Y if set, else Output Y=0x40.
@ NTV2_CHANNEL1
Specifies channel or FrameStore 1 (or the first item).
@ NTV2_XptFrameBuffer6_DS2RGB
@ DEVICE_ID_KONAIP_1RX_1TX_1SFP_J2K
See KONA IP.
@ NTV2WidgetType_Compression
NTV2FrameRate GetNTV2FrameRateFromNumeratorDenominator(const ULWord inNumerator, const ULWord inDenominator)
@ NTV2_XptMixer4BGVidInput
@ M31_FILE_2048X1080_420_8_60p
NTV2StringSet::const_iterator NTV2StringSetConstIter
@ NTV2_FORMAT_4x3840x2160p_2398
@ M31_VIF_3840X2160_420_8_30p
@ NTV2_FBF_24BIT_RGB
See 24-Bit RGB.
@ NTV2CROSSPOINT_CHANNEL5
string NTV2HDMIColorSpaceToString(const NTV2HDMIColorSpace inValue, const bool inCompact)
@ NTV2Scan_Progressive
Progressive.
Describes the horizontal and vertical size dimensions of a raster, bitmap, frame or image.
@ NTV2_BreakoutNone
No identifiable breakout hardware appears to be attached.
void UnPack10BitDPXtoForRP215withEndianSwap(UWord *rawrp215Buffer, ULWord *DPXLinebuffer, ULWord numPixels)
@ NTV2_FORMAT_4x4096x2160p_6000_B
@ NTV2_BITFILE_KONAIP_2TX_1SFP_J2K
@ NTV2_FIELD0
Identifies the first field in time for an interlaced video frame, or the first and only field in a pr...
@ NTV2_XptFrameBuffer3RGB
#define NTV2_IS_VALID_AUDIO_RATE(_x_)
uint8_t staticMetadataDescriptorID
@ NTV2CROSSPOINT_CHANNEL7
@ NTV2_XptFrameBuffer7DS2Input
string NTV2IsoConvertModeToString(const NTV2IsoConvertMode inValue, const bool inCompact)
@ NTV2_IOKINDS_ANALOG
Specifies analog input/output kinds.
@ NTV2_FRAMERATE_2500
25 frames per second
@ NTV2_BITFILE_KONA5_OE2_MAIN
NTV2HDMIRange
Indicates or specifies the HDMI RGB range.
#define CCIR601_10BIT_WHITE
@ DEVICE_ID_IO4KUFC
See Io 4K (UFC Mode).
@ M31_VIF_3840X2160_420_8_5994p
static const string AJAMacDriverInfoPlistPath("/Library/Extensions/AJANTV2.kext/Contents/Info.plist")
@ NTV2_FORMAT_1080p_2K_4795_A
bool IsNTV2CrosspointOutput(const NTV2Crosspoint inChannel)
#define NTV2_IS_TALL_VANC_GEOMETRY(__g__)
@ NTV2_FORMAT_3840x2160p_2500
@ NTV2_HDMIAudio8Channels
8 audio channels
@ NTV2_VIDEOLIMITING_LEGALBROADCAST
Identifies the "Legal Broadcast" mode (Ymax=0x340, Cmax=0x340)
@ NTV2_720p_5000to625_2500
NTV2FrameRate
Identifies a particular video frame rate.
@ NTV2_INPUTSOURCE_HDMI3
Identifies the 3rd HDMI video input.
@ DEVICE_ID_CORVID1
See Corvid, Corvid 3G.
void Make8BitLine(UByte *lineData, UByte Y, UByte Cb, UByte Cr, ULWord numPixels, NTV2FrameBufferFormat fbFormat)
bool UnpackLine_10BitYUVtoUWordSequence(const void *pIn10BitYUVLine, UWordSequence &out16BitYUVLine, ULWord inNumPixels)
Unpacks a line of NTV2_FBF_10BIT_YCBCR video into 16-bit-per-component YUV data.
@ NTV2_CHANNEL6
Specifies channel or FrameStore 6 (or the 6th item).
string NTV2AudioBufferSizeToString(const NTV2AudioBufferSize inValue, const bool inForRetailDisplay)
bool HasVANCGeometries(const NTV2FrameGeometry inFG)
@ M31_FILE_720X576_420_8_50p
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
uint16_t maxFrameAverageLightLevel
@ NTV2_EMBEDDED_AUDIO_INPUT_INVALID
@ M31_FILE_1920X1080_420_8_2398p
@ NTV2_1080psf_2398to1080i_5994
@ M31_FILE_3840X2160_420_10_60p
@ NTV2_FORMAT_4096x2160p_6000_B
@ M31_FILE_720X480_422_10_60p
@ NTV2_XptDualLinkIn7DSInput
@ NTV2_XptFrameBuffer6Input
bool NTV2DeviceCanDoVideoFormat(const NTV2DeviceID inDeviceID, const NTV2VideoFormat inVideoFormat)
@ NTV2_XptDualLinkIn3Input
ULWord GetNTV2FrameGeometryWidth(const NTV2FrameGeometry inGeometry)
bool NTV2DeviceCanDoFormat(const NTV2DeviceID inDeviceID, const NTV2FrameRate inFrameRate, const NTV2FrameGeometry inFrameGeometry, const NTV2Standard inStandard)
@ NTV2_FORMAT_4x4096x2160p_2997
NTV2RegisterNumberSet NTV2RegNumSet
A set of distinct NTV2RegisterNumbers.
@ NTV2_FRAMERATE_4800
48 frames per second
string NTV2RegisterNumberToString(const NTV2RegisterNumber inValue)
@ M31_VIF_720X480_422_10_5994i
void PackRGB10BitFor10BitRGB(RGBAlpha10BitPixel *pBuffer, const ULWord inNumPixels)
@ M31_FILE_2048X1080_420_8_25p
@ M31_VIF_720X480_420_8_60p
@ M31_FILE_1920X1080_422_10_50i
NTV2MixerKeyerInputControl
These enum values identify the Mixer/Keyer foreground and background input control values.
@ NTV2_HDMIProtocolDVI
DVI protocol.
@ NTV2_FORMAT_4096x2160psf_2400
@ NTV2_CHANNEL4
Specifies channel or FrameStore 4 (or the 4th item).
NTV2EmbeddedAudioInput NTV2InputSourceToEmbeddedAudioInput(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2EmbeddedAudioInput value.
uint16_t minMasteringLuminance
@ NTV2_XptFrameBuffer2_DS2YUV
@ DEVICE_ID_CORVID44_8K
See Corvid 44 12G.
@ DEVICE_ID_KONAIP_2TX_1SFP_J2K
See KONA IP.
@ NTV2_XptMixer4FGVidInput
@ NTV2_REGWRITE_SYNCTOFRAME
Frame Mode: Register changes take effect at the next frame VBI (power-up default).
@ NTV2_XptDualLinkIn7Input
@ NTV2_TCINDEX_SDI5_2
SDI 5 embedded VITC 2.
string NTV2RegisterWriteModeToString(const NTV2RegisterWriteMode inValue, const bool inForRetailDisplay)
@ M31_VIF_1920X1080_420_8_60i
@ NTV2_UpConvertAnamorphic
@ M31_VIF_720X576_420_8_50i
@ NTV2WidgetType_MultiLinkOut
string NTV2EmbeddedAudioInputToString(const NTV2EmbeddedAudioInput inValue, const bool inCompactDisplay)
@ NTV2_525_5994to1080i_5994
NTV2VideoFormat GetQuarterSizedVideoFormat(const NTV2VideoFormat inVideoFormat)
@ M31_VIF_720X480_420_8_5994p
@ NTV2_CHANNEL5
Specifies channel or FrameStore 5 (or the 5th item).
@ NTV2_FRAMERATE_2400
24 frames per second
NTV2DeviceIDSet NTV2GetSupportedDevices(const NTV2DeviceKinds inKinds)
Returns an NTV2DeviceIDSet of devices supported by the SDK.
NTV2EmbeddedAudioClock
This enum value determines/states the device audio clock reference source. It was important to set th...
string AutoCircVidProcModeToString(const AutoCircVidProcMode inValue, const bool inCompactDisplay)
@ NTV2_BITFILE_CORVID3G_MAIN
@ M31_FILE_3840X2160_422_10_25p
string NTV2FrameGeometryToString(const NTV2FrameGeometry inValue, const bool inForRetailDisplay)
@ M31_FILE_3840X2160_422_10_30p
@ M31_FILE_1920X1080_422_10_60i
@ NTV2_FORMAT_4x2048x1080psf_2398
@ NTV2_FBF_10BIT_RGB_PACKED
10-Bit Packed RGB
@ NTV2_BITFILE_TYPE_INVALID
@ NTV2_INPUTSOURCE_ANALOG1
Identifies the first analog video input.
@ NTV2_XptMultiLinkOut1DS2
New in SDK 16.0.
#define NTV2_IS_3Gb_FORMAT(__f__)
@ NTV2_FBF_8BIT_YCBCR_420PL2
8-Bit 4:2:0 2-Plane YCbCr
string NTV2BreakoutTypeToString(const NTV2BreakoutType inValue, const bool inCompactDisplay)
@ DEVICE_ID_KONAIP_4CH_2SFP
See KONA IP.
@ NTV2IpErrGrandMasterInfo
@ NTV2_BITFILE_KONA5_OE1_MAIN
@ NTV2_FORMAT_4x2048x1080p_2398
NTV2ReferenceSource NTV2InputSourceToReferenceSource(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2ReferenceSource value.
void PackLine_16BitYUVto10BitYUV(const UWord *pIn16BitYUVLine, ULWord *pOut10BitYUVLine, const ULWord inNumPixels)
Packs a line of 16-bit-per-component YCbCr (NTV2_FBF_10BIT_YCBCR) video into 10-bit-per-component YCb...
string NTV2HDMIRangeToString(const NTV2HDMIRange inValue, const bool inCompact)
@ NTV2_INPUTSOURCE_SDI1
Identifies the 1st SDI video input.
@ NTV2_BITFILE_KONA4UFC_MAIN
@ NTV2_NUM_OUTPUTDESTINATIONS
string PercentEncode(const string &inStr)
string NTV2AudioLoopBackToString(const NTV2AudioLoopBack inValue, const bool inForRetailDisplay)
@ NTV2_XptFrameBuffer4_DS2RGB
@ NTV2_IOKINDS_SDI
Specifies SDI input/output kinds.
@ NTV2_REFERENCE_HDMI_INPUT4
Specifies the HDMI In 4 connector.
NTV2GeometrySet GetRelatedGeometries(const NTV2FrameGeometry inFG)
@ M31_FILE_3840X2160_420_8_24p
@ M31_VIF_1920X1080_420_8_50p
@ NTV2_TCINDEX_SDI2_LTC
SDI 2 embedded ATC LTC.
@ NTV2_FORMAT_END_UHD2_DEF_FORMATS
@ NTV2_XptFrameBuffer1_DS2RGB
NTV2FrameGeometry GetVANCFrameGeometry(const NTV2FrameGeometry inFrameGeometry, const NTV2VANCMode inVancMode)
@ NTV2_FORMAT_1080psf_2K_2500
string NTV2WidgetTypeToString(const NTV2WidgetType inValue, const bool inCompactDisplay)
#define NTV2_IS_VALID_IOKINDS(_k_)
@ NTV2_OUTPUTDESTINATION_SDI1
@ NTV2_REFERENCE_INPUT5
Specifies the SDI In 5 connector.
@ NTV2_FORMAT_END_UHD_TSI_DEF_FORMAT
#define NTV2_IS_FBF_RGB(__fbf__)
@ NTV2_FORMAT_4x2048x1080psf_2400
@ M31_FILE_3840X2160_422_10_2398p
@ NTV2_TCINDEX_SDI1_LTC
SDI 1 embedded ATC LTC.
@ NTV2_FBF_10BIT_RAW_RGB
10-Bit Raw RGB
@ M31_FILE_1920X1080_420_8_60p
@ NTV2_XptFrameBuffer2_DS2RGB
@ M31_VIF_1920X1080_420_8_50i
ULWord GetIndexForNTV2Crosspoint(const NTV2Crosspoint channel)
@ NTV2_XptFrameBuffer7Input
@ NTV2_XptMultiLinkOut2DS1
New in SDK 16.0.
#define NTV2_IS_VALID_AUDIO_CHANNEL_QUAD(__p__)
bool IsProgressivePicture(const NTV2VideoFormat format)
@ M31_VIF_1280X720_422_10_60p
@ NTV2_FORMAT_1080p_5994_B
@ NTV2_XptFrameBuffer1Input
ostream & operator<<(ostream &inOutStream, const NTV2FrameDimensions inFrameDimensions)
@ NTV2_FORMAT_1080psf_3000_2
@ NTV2_TCINDEX_SDI1
SDI 1 embedded VITC.
@ NTV2_FORMAT_1080p_2K_2400
@ NTV2_TCINDEX_SDI2
SDI 2 embedded VITC.
string NTV2BitfileTypeToString(const NTV2BitfileType inValue, const bool inCompactDisplay)
@ NTV2_FG_2048x1588
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_TALL
@ NTV2_EMBEDDED_AUDIO_CLOCK_REFERENCE
Audio clock derived from the device reference.
NTV2TimecodeIndex NTV2InputSourceToTimecodeIndex(const NTV2InputSource inInputSource, const bool inEmbeddedLTC)
Converts a given NTV2InputSource to its equivalent NTV2TimecodeIndex value.
@ NTV2_BITFILE_KONA5_OE4_MAIN
@ NTV2_VANCMODE_TALL
This identifies the "tall" mode in which there are some VANC lines in the frame buffer.
@ NTV2_REFERENCE_INPUT4
Specifies the SDI In 4 connector.
@ NTV2_FORMAT_4x2048x1080p_3000
@ NTV2_XptDualLinkIn2Input
@ NTV2_TCINDEX_SDI5
SDI 5 embedded VITC.
@ M31_FILE_2048X1080_422_10_60p
NTV2Standard
Identifies a particular video standard.
@ M31_VIF_3840X2160_420_10_60p
#define NTV2EndianSwap16(__val__)
@ NTV2_AUDIOSYSTEM_2
This identifies the 2nd Audio System.
@ NTV2IpErrInvalidChannel
std::ostream & Print(std::ostream &inOutStream) const
Writes a human-readable description of me into the given output stream.
@ NTV2_VANCMODE_OFF
This identifies the mode in which there are no VANC lines in the frame buffer.
void Make10BitLine(UWord *pOutLineData, const UWord Y, const UWord Cb, const UWord Cr, const ULWord inNumPixels)
@ NTV2_FORMAT_4096x2160p_4795
@ NTV2_625_2500to1080i_2500
bool IsVideoFormatA(const NTV2VideoFormat format)
@ NTV2_BITFILE_KONAIP_25G
@ NTV2_1080p_2400to1080i_3000
@ NTV2_XptFrameBuffer7_DS2YUV
Declares the AJALock class.
@ NTV2_FRAMERATE_2398
Fractional rate of 24,000 frames per 1,001 seconds.
@ DEVICE_ID_KONA5_8K
See KONA 5.
@ NTV2_WgtAnalogCompositeOut1
string NTV2InputSourceToString(const NTV2InputSource inValue, const bool inForRetailDisplay)
ULWord GetIndexForNTV2Channel(const NTV2Channel inChannel)
@ NTV2IpErrInvalidMBResponseNoMac
@ DEVICE_ID_KONA3G
See KONA 3G (UFC Mode).
@ M31_FILE_1280X720_422_10_5994p
@ NTV2_FORMAT_4x4096x2160p_3000
@ NTV2_XptMultiLinkOut1InputDS2
New in SDK 16.0.
@ NTV2_FORMAT_4x2048x1080p_5000_B
ULWord NTV2FramesizeToByteCount(const NTV2Framesize inFrameSize)
Converts the given NTV2Framesize value into an exact byte count.
uint16_t maxMasteringLuminance
string NTV2AudioSystemToString(const NTV2AudioSystem inValue, const bool inCompactDisplay)
@ NTV2WidgetType_FrameSync
@ NTV2WidgetType_TestPattern
@ M31_VIF_1280X720_420_8_60p
@ NTV2WidgetType_4KDownConverter
@ DEVICE_ID_KONAXM
See KONA XMâ„¢.
@ M31_FILE_1920X1080_420_8_5994p
@ NTV2_CHANNEL7
Specifies channel or FrameStore 7 (or the 7th item).
@ NTV2_XptMixer1FGKeyInput
NTV2VideoFormat GetSupportedNTV2VideoFormatFromInputVideoFormat(const NTV2VideoFormat inVideoFormat)
@ NTV2WidgetType_HDMIInV2
string NTV2AudioRateToString(const NTV2AudioRate inValue, const bool inForRetailDisplay)
@ M31_FILE_1920X1080_422_10_30p
@ DEVICE_ID_CORVID3G
See Corvid, Corvid 3G.
@ DEVICE_ID_KONAX
See KONA Xâ„¢.
@ NTV2_1080i_5994to525_5994
@ NTV2_TCINDEX_SDI7_2
SDI 7 embedded VITC 2.
@ NTV2_FORMAT_4x2048x1080psf_3000
@ NTV2_DEVICEKIND_CUSTOM_ANC
Specifies devices that have Anc/Aux inserters/extractors.
NTV2Standard GetNTV2StandardFromVideoFormat(const NTV2VideoFormat inVideoFormat)
@ M31_VIF_1920X1080_420_10_50p
@ NTV2WidgetType_AnalogOut
@ DEVICE_ID_KONA5_OE5
See KONA 5.
string NTV2TaskModeToString(const NTV2EveryFrameTaskMode inValue, const bool inCompactDisplay)
@ NTV2_625_5000to625psf_2500
static std::string GetDisplayName(const uint32_t inRegNum)
NTV2ReferenceSource
These enum values identify a specific source for the device's (output) reference clock.
@ NTV2_FORMAT_1080p_2K_4795_B
@ NTV2_AncRgn_Field1
Identifies the "normal" Field 1 ancillary data region.
@ NTV2_XptFrameBuffer1YUV
#define NTV2EndianSwap32(__val__)
@ DEVICE_ID_KONA4UFC
See KONA 4 (UFC Mode).
@ NTV2WidgetType_FrameStore
#define NTV2_IS_INPUT_CROSSPOINT(__x__)
@ NTV2_XptDuallinkOut2DS2
@ NTV2_FG_720x612
720x576, for PAL 625i, NTV2_VANCMODE_TALLER
@ NTV2_FRAMERATE_1498
Fractional rate of 15,000 frames per 1,001 seconds.
@ M31_FILE_1280X720_420_8_2997p
@ NTV2_XptDuallinkOut1DS2
@ NTV2_XptDuallinkOut4DS2
@ NTV2CROSSPOINT_CHANNEL2
@ NTV2_1080i_5994to720p_5994
@ NTV2_FORMAT_4x3840x2160p_5994
@ DEVICE_ID_KONAIP_1RX_1TX_2110
See KONA IP.
@ NTV2_DEVICEKIND_RELAYS
Specifies devices that have SDI bypass relays.
void RePackLineDataForYCbCrDPX(ULWord *packedycbcrLine, ULWord numULWords)
@ NTV2_FORMAT_4096x2160p_2398
std::vector< uint16_t > UWordSequence
An ordered sequence of UWord (uint16_t) values.
std::set< NTV2FrameGeometry > NTV2GeometrySet
A set of distinct NTV2FrameGeometry values.
@ M31_VIF_720X480_422_10_60p
@ NTV2_FORMAT_END_STANDARD_DEF_FORMATS
NTV2Mode
Used to identify the mode of a widget_framestore, or the direction of an AutoCirculate stream: either...
NTV2HDMIProtocol
Indicates or specifies the HDMI protocol.
@ NTV2_DEVICEKIND_EXTERNAL
Specifies external devices (e.g. Thunderbolt).
@ NTV2_INPUTSOURCE_INVALID
The invalid video input.
@ NTV2_DEVICEKIND_4K
Specifies devices that can do 4K video.
@ M31_VIF_1920X1080_420_8_5994i
@ M31_FILE_1920X1080_420_8_30p
@ NTV2MIXERINPUTCONTROL_SHAPED
@ NTV2_XptWaterMarker1Input
@ NTV2IpErrAcquireMBTimeout
@ NTV2_MAX_NUM_VIDEO_FORMATS
@ M31_VIF_1920X1080_420_10_60p
float minMasteringLuminance
@ NTV2IpErrWriteCountToMB
@ NTV2_DEVICEKIND_SFP
Specifies devices with SFP connectors.
@ NTV2_BITFILE_IO4KPLUS_MAIN
@ M31_VIF_720X480_422_10_5994p
@ NTV2_FORMAT_3840x2160psf_3000
NTV2TCIndex
These enum values are indexes into the capture/playout AutoCirculate timecode arrays.
@ NTV2_FORMAT_4x1920x1080p_5000_B
@ NTV2_XptFrameBuffer8_DS2YUV
NTV2FrameRate GetFrameRateFromScale(long scale, long duration, NTV2FrameRate playFrameRate)
@ NTV2CROSSPOINT_CHANNEL6
@ NTV2_INPUTSOURCE_SDI5
Identifies the 5th SDI video input.
std::string NTV2InterruptEnumToString(const INTERRUPT_ENUMS inInterruptEnumValue)
NTV2RegWritesConstIter NTV2RegisterReadsConstIter
@ NTV2_XptConversionModInput
@ NTV2WidgetType_HDMIInV4
@ NTV2_FORMAT_4x2048x1080p_5000
@ M31_FILE_3840X2160_420_10_50p
NTV2VideoFormat GetFirstMatchingVideoFormat(const NTV2FrameRate inFrameRate, const UWord inHeightLines, const UWord inWidthPixels, const bool inIsInterlaced, const bool inIsLevelB, const bool inIsPSF)
@ NTV2IpErrInvalidUllLevels
uint16_t maxContentLightLevel
void CopyRGBAImageToFrame(ULWord *pSrcBuffer, ULWord srcWidth, ULWord srcHeight, ULWord *pDstBuffer, ULWord dstWidth, ULWord dstHeight)
@ NTV2_FBF_24BIT_BGR
See 24-Bit BGR.
@ NTV2_OUTPUTDESTINATION_SDI6
ULWord GetIndexForNTV2CrosspointInput(const NTV2Crosspoint channel)
@ NTV2_FORMAT_FIRST_4K_DEF_FORMAT2
@ NTV2_XptConversionModule
@ NTV2_BITFILE_SOJI_DIAGS_MAIN
string NTV2HDMIProtocolToString(const NTV2HDMIProtocol inValue, const bool inCompact)
@ NTV2_HDMIColorSpaceYCbCr
YCbCr color space.
UWord NTV2DeviceGetNumVideoInputs(const NTV2DeviceID inDeviceID)
UWord NTV2DeviceGetNumHDMIVideoOutputs(const NTV2DeviceID inDeviceID)
@ NTV2_FORMAT_4096x2160p_6000
@ NTV2_REFERENCE_INPUT6
Specifies the SDI In 6 connector.
@ M31_VIF_1280X720_420_8_50p
@ NTV2_FG_720x514
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_TALLER
NTV2AudioChannelPair
Identifies a pair of audio channels.
@ NTV2_1080p_3000to720p_6000
@ M31_FILE_720X480_422_10_60i
NTV2RegisterReads FromRegNumSet(const NTV2RegNumSet &inRegNumSet)
NTV2Channel NTV2InputSourceToChannel(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2Channel value.
string NTV2CrosspointToString(const NTV2Crosspoint inChannel)
@ DEVICE_ID_TTAP_PRO
See T-TAP Pro.
@ NTV2_CHANNEL3
Specifies channel or FrameStore 3 (or the 3rd item).
std::set< NTV2FrameRate > NTV2FrameRates
bool CopyFrom(const void *pInSrcBuffer, const ULWord inByteCount)
Replaces my contents from the given memory buffer, resizing me to the new byte count.
@ NTV2_STANDARD_1080p
Identifies SMPTE HD 1080p.
@ NTV2_BITFILE_KONA5_OE10_MAIN
NTV2RegWrites NTV2RegisterReads
bool NTV2DeviceCanDo4KVideo(const NTV2DeviceID inDeviceID)
@ NTV2_DEVICEKIND_ANALOG
Specifies devices with analog video connectors.
NTV2VideoFormat GetInputForConversionMode(const NTV2ConversionMode conversionMode)
string NTV2AudioChannelPairToString(const NTV2AudioChannelPair inValue, const bool inCompactDisplay)
@ NTV2_DEVICEKIND_SDI
Specifies devices with SDI connectors.
@ DEVICE_ID_KONAIP_25G
See konaip25g.
void CopyFromQuadrant(uint8_t *srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t srcQuadrant, uint8_t *dstBuffer, uint32_t quad13Offset)
@ NTV2_FORMAT_4x1920x1080p_3000
@ NTV2IpErrInvalidIGMPVersion
@ NTV2_XptFrameBuffer6_DS2YUV
#define NTV2_IS_VANCMODE_ON(__v__)
string NTV2VideoLimitingToString(const NTV2VideoLimiting inValue, const bool inCompactDisplay)
#define NTV2_IS_VALID_INPUT_SOURCE(_inpSrc_)
@ NTV2_FORMAT_4x3840x2160p_2997
@ NTV2_TCINDEX_SDI7
SDI 7 embedded VITC.
@ NTV2_FBF_8BIT_YCBCR
See 8-Bit YCbCr Format.
@ NTV2_REFERENCE_FREERUN
Specifies the device's internal clock.
@ NTV2_XptDualLinkOut4Input
@ NTV2MIXERINPUTCONTROL_INVALID
@ NTV2_EMBEDDED_AUDIO_CLOCK_VIDEO_INPUT
Audio clock derived from the video input.
@ NTV2_OUTPUTDESTINATION_SDI8
Declares numerous NTV2 utility functions.
@ NTV2_FORMAT_1080p_5000_B
NTV2Framesize
Kona2/Xena2 specific enums.
@ NTV2_XptFrameBuffer8DS2Input
NTV2AudioSystem NTV2InputSourceToAudioSystem(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2AudioSystem value.
@ NTV2_XptMixer2FGVidInput
@ M31_FILE_720X576_422_10_50i
@ NTV2_TCINDEX_SDI5_LTC
SDI 5 embedded ATC LTC.
static bool SetRasterLinesWhite8BitYCbCr(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
@ NTV2_DEVICEKIND_12G
Specifies devices that have 12G SDI connectors.
@ NTV2_BITFILE_KONAIP_1RX_1TX_1SFP_J2K
NTV2BreakoutType
Identifies the Breakout Boxes and Cables that may be attached to an AJA NTV2 device.
@ M31_FILE_3840X2160_422_8_2398p
NTV2FrameRates::const_iterator NTV2FrameRatesConstIter
@ NTV2_FORMAT_4x3840x2160p_5000
@ M31_FILE_1920X1080_422_10_25p
@ DEVICE_ID_KONAIP_2022
See KONA IP.
@ M31_VIF_3840X2160_422_10_60p
@ NTV2_FORMAT_1080p_2K_5994_A
#define NTV2_INPUT_SOURCE_IS_HDMI(_inpSrc_)
@ NTV2_BITFILE_KONA5_2X4K_MAIN
NTV2InputCrosspointID
Identifies a widget input that potentially can accept a signal emitted from another widget's output (...
bool IsVideoFormatB(const NTV2VideoFormat format)
@ DEVICE_ID_IOXT
See Io XT.
ULWord GetDisplayWidth(const NTV2VideoFormat inVideoFormat)
@ NTV2_XptFrameBuffer5_DS2RGB
string NTV2ColorCorrectionModeToString(const NTV2ColorCorrectionMode inValue, const bool inCompactDisplay)
@ M31_FILE_3840X2160_422_10_50p
@ NTV2MIXERMODE_FOREGROUND_ON
Passes only foreground video + key to the Mixer output.
@ NTV2_FORMAT_4x2048x1080p_12000
@ NTV2_HDMIRangeFull
Levels are 0 - 255 (Full)
@ DEVICE_ID_KONA5_8K_MV_TX
See KONA 5.
@ NTV2_DEVICEKIND_NONE
Doesn't specify any kind of device.
bool convertHDRRegisterToFloatValues(const HDRRegValues &inRegisterValues, HDRFloatValues &outFloatValues)
@ NTV2_XptSDIOut1InputDS2
@ NTV2_AUDIO_LOOPBACK_INVALID
void setHDRDefaultsForBT2020(HDRRegValues &outRegisterValues)
#define NTV2_IS_FBF_8BIT(__fbf__)
UWord NTV2DeviceGetNumAnalogVideoOutputs(const NTV2DeviceID inDeviceID)
@ M31_FILE_3840X2160_420_8_2398p
static bool CopyRaster36BytesPer8Pixels(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
@ M31_FILE_3840X2160_422_8_60p
@ DEVICE_ID_KONA5_OE8
See KONA 5.
@ M31_FILE_4096X2160_422_10_60p_IF
string NTV2WidgetIDToString(const NTV2WidgetID inValue, const bool inCompactDisplay)
@ NTV2WidgetType_HDMIInV1
@ M31_FILE_1280X720_420_8_5994p
@ NTV2_BITFILE_KONA3G_MAIN
@ NTV2_XptFrameBuffer1DS2Input
@ NTV2_FBF_10BIT_YCBCR_422PL2
10-Bit 4:2:2 2-Plane YCbCr
@ NTV2_REFERENCE_HDMI_INPUT1
Specifies the HDMI In 1 connector.
void PackTo10BitYCbCrBuffer(const uint16_t *ycbcrBuffer, uint32_t *packedBuffer, const uint32_t numPixels)
@ NTV2_FORMAT_625psf_2500
@ DEVICE_ID_KONALHEPLUS
See KONA LHe Plus.
@ DEVICE_ID_KONA5_OE1
See KONA 5.
@ NTV2_INPUTSOURCE_HDMI4
Identifies the 4th HDMI video input.
NTV2AudioLoopBack
This enum value determines/states if an audio output embedder will embed silence (zeroes) or de-embed...
#define CCIR601_10BIT_BLACK
@ M31_FILE_1920X1080_420_8_2997p
ULWord GetVaricamRepeatCount(const NTV2FrameRate inSequenceRate, const NTV2FrameRate inPlayRate, const ULWord inCadenceFrame)
NTV2Channel NTV2TimecodeIndexToChannel(const NTV2TCIndex inTCIndex)
Converts the given NTV2TCIndex value into the appropriate NTV2Channel value.
@ DEVICE_ID_CORVID88
See Corvid 88.
@ M31_FILE_2048X1080_420_8_50p
bool NTV2DeviceCanDoPlayback(const NTV2DeviceID inDeviceID)
@ NTV2_FG_1280x720
1280x720, for 720p, NTV2_VANCMODE_OFF
@ M31_FILE_3840X2160_422_8_50p
@ NTV2_FORMAT_1080p_2K_2500
@ NTV2WidgetType_HDMIOutV4
@ NTV2_DEVICEKIND_HDMI
Specifies devices with HDMI connectors.
@ NTV2IpErrInvalidMBResponse
NTV2VANCMode GetVANCModeForGeometry(const NTV2FrameGeometry inFG)
@ NTV2_1080psf_2400to1080i_3000
@ NTV2_FORMAT_4x4096x2160p_4800_B
@ NTV2_FORMAT_4x1920x1080psf_2997
@ M31_FILE_2048X1080_420_8_2398p
Defines for the NTV2 SDK version number, used by ajantv2/includes/ntv2enums.h. See the ajantv2/includ...
@ NTV2_CONVERSIONMODE_UNKNOWN
@ NTV2_FORMAT_END_4K_DEF_FORMATS2
bool convertHDRFloatToRegisterValues(const HDRFloatValues &inFloatValues, HDRRegValues &outRegisterValues)
@ NTV2_FORMAT_1080p_6000_A
bool NTV2DeviceIsExternalToHost(const NTV2DeviceID inDeviceID)
@ NTV2_FORMAT_3840x2160psf_2398
@ NTV2_INPUTSOURCE_HDMI1
Identifies the 1st HDMI video input.
@ NTV2_FORMAT_FIRST_UHD_TSI_DEF_FORMAT
NTV2TCIndexes GetTCIndexesForSDIConnector(const NTV2Channel inSDI)
@ NTV2_TCINDEX_SDI4_LTC
SDI 4 embedded ATC LTC.
@ NTV2_Xpt4KDownConverterOutRGB
@ NTV2_BITFILE_KONALHE_PLUS
void MaskYCbCrLine(UWord *ycbcrLine, UWord signalMask, ULWord numPixels)
string NTV2TCIndexToString(const NTV2TCIndex inValue, const bool inCompactDisplay)
@ NTV2_STANDARD_TASKS
1: Standard/Retail: device configured by AJA ControlPanel, service/daemon, and driver.
@ NTV2_TCINDEX_SDI3_2
SDI 3 embedded VITC 2.
@ NTV2_FRAMERATE_11988
Fractional rate of 120,000 frames per 1,001 seconds.
@ NTV2_FORMAT_1080p_2K_2398
#define AJA_NTV2_SDK_VERSION_MAJOR
The SDK major version number, an unsigned decimal integer.
void ConvertLineTo8BitYCbCr(const uint16_t *ycbcr10BitBuffer, uint8_t *ycbcr8BitBuffer, const uint32_t numPixels)
uint16_t maxMasteringLuminance
@ NTV2_FORMAT_3840x2160p_2997
@ NTV2_FORMAT_4096x2160p_4800
@ M31_FILE_720X480_420_8_60i
std::vector< std::string > NTV2StringList
LWord64 GetTotalAudioSamplesFromFrameNbrZeroUpToFrameNbr(const NTV2FrameRate inFrameRate, const NTV2AudioRate inAudioRate, const ULWord inFrameNumNonInclusive)
@ NTV2_MAX_NUM_Framesizes
void Make10BitBlackLine(UWord *pOutLineData, const ULWord inNumPixels)
Writes a line of unpacked, legal SMPTE 10-bit Y/C black values into the given buffer.
@ NTV2_AncRgn_MonField2
Identifies the "monitor" or "auxiliary" Field 2 ancillary data region.
NTV2VANCMode
These enum values identify the available VANC modes.
@ NTV2_INVALID_HDMI_PROTOCOL
bool IsNTV2CrosspointInput(const NTV2Crosspoint inChannel)
@ NTV2_XptMultiLinkOut2DS2
New in SDK 16.0.
@ M31_FILE_720X480_420_8_5994p
@ NTV2_STANDARD_4096i
Identifies 4K psf.
bool GetInstalledMacDriverVersion(UWord &outMaj, UWord &outMin, UWord &outPt, UWord &outBld, UWord &outType)
@ NTV2_INVALID_HDMI_RANGE
@ NTV2_INPUT_CROSSPOINT_INVALID
@ NTV2_FORMAT_3840x2160psf_2400
static bool CopyRaster4BytesPerPixel(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
string NTV2OutputCrosspointIDToString(const NTV2OutputCrosspointID inValue, const bool inForRetailDisplay)
@ NTV2_FORMAT_1080psf_2K_2400
#define NTV2_IS_PSF_VIDEO_FORMAT(__f__)
@ M31_VIF_1280X720_422_10_50p
@ NTV2_BreakoutCableXLR
Identifies the AES/EBU audio breakout cable that has XLR connectors.
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_6
void Make8BitWhiteLine(UByte *lineData, ULWord numPixels, NTV2FrameBufferFormat fbFormat)
@ NTV2_XptFrameSync2Input
@ NTV2_XptFrameBuffer4DS2Input
@ M31_FILE_720X576_422_10_50p
NTV2Channel NTV2CrosspointToNTV2Channel(const NTV2Crosspoint inCrosspointChannel)
void ConvertLinetoRGB(UByte *ycbcrBuffer, RGBAlphaPixel *rgbaBuffer, ULWord numPixels, bool fUseSDMatrix, bool fUseSMPTERange=false)
#define NTV2_IS_VALID_CHANNEL(__x__)
ULWord registerValue
My register value to use in a ReadRegister or WriteRegister call.
@ NTV2_DISABLE_TASKS
0: Disabled (never recommended): device configured exclusively by client application(s).
@ M31_FILE_1920X1080_420_8_24p
@ M31_FILE_1920X1080_420_8_50p
@ M31_FILE_3840X2160_422_10_24p
@ NTV2_VANCMODE_INVALID
This identifies the invalid (unspecified, uninitialized) VANC mode.
bool IsTransportCompatibleFormat(const NTV2VideoFormat inFormat1, const NTV2VideoFormat inFormat2)
@ NTV2_FORMAT_3840x2160p_5994
@ NTV2_FORMAT_4x4096x2160p_2400
@ M31_VIF_1920X1080_422_10_5994p
@ NTV2_FBF_8BIT_YCBCR_YUY2
See Alternate 8-Bit YCbCr ('YUY2').
@ NTV2_IOKINDS_NONE
Doesn't specify any kind of input/output.
@ M31_FILE_720X576_420_8_50i
@ NTV2WidgetType_SDIOut3G
#define CCIR601_8BIT_BLACK
@ NTV2_BITFILE_SOJI_OE2_MAIN
void * GetHostAddress(const ULWord inByteOffset, const bool inFromEnd=false) const
@ NTV2IpErrSoftwareMismatch
@ NTV2IpErrNoResponseFromMB
@ NTV2_INPUTSOURCE_HDMI2
Identifies the 2nd HDMI video input.
@ NTV2_FORMAT_4x4096x2160p_6000
NTV2OutputCrosspointID
Identifies a widget output, a signal source, that potentially can drive another widget's input (ident...
@ NTV2_FORMAT_3840x2160p_2398
void * GetHostPointer(void) const
@ NTV2_FORMAT_4x2048x1080p_5994_B
@ NTV2_FG_1920x1112
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_TALL
@ NTV2_INVALID_HDMIBitDepth
NTV2InputSource
Identifies a specific video input source.
@ DEVICE_ID_IOIP_2110
See Io IP.
@ NTV2_1080p_2398to1080i_5994
@ DEVICE_ID_KONA5_3DLUT
See KONA 5.
@ NTV2_XptDualLinkIn4Input
string NTV2GetFirmwareFolderPath(void)
NTV2AudioSystem NTV2ChannelToAudioSystem(const NTV2Channel inChannel)
Converts the given NTV2Channel value into its equivalent NTV2AudioSystem.
std::string toString(const bool inNormalized=false) const
string NTV2ScanMethodToString(const NTV2ScanMethod inValue, const bool inCompact)
@ NTV2_BITFILE_KONA5_OE5_MAIN
@ NTV2_MAX_NUM_IsoConvertModes
void ConvertARGBToRGB(UByte *rgbaLineBuffer, UByte *rgbLineBuffer, ULWord numPixels)
@ NTV2WidgetType_SDIOut12G
NTV2Crosspoint GetNTV2CrosspointChannelForIndex(const ULWord index)
@ NTV2_FORMAT_END_4K_TSI_DEF_FORMATS
NTV2ConversionMode GetConversionMode(const NTV2VideoFormat inFormat, const NTV2VideoFormat outFormat)
#define NTV2_IS_QUAD_QUAD_FORMAT(__f__)
NTV2OutputCrosspointIDs::const_iterator NTV2OutputCrosspointIDsConstIter
A convenient const iterator for NTV2OutputCrosspointIDs.
@ NTV2_Xpt4KDownConverterOut
@ NTV2_AUDIO_AES
Obtain audio samples from the device AES inputs, if available.
@ NTV2_FORMAT_4x1920x1080psf_2398
@ NTV2_FG_FIRST
The ordinally first geometry (New in SDK 16.0)
bool YUVComponentsTo10BitYUVPackedBuffer(const vector< uint16_t > &inYCbCrLine, NTV2Buffer &inFrameBuffer, const NTV2FormatDescriptor &inDescriptor, const UWord inLineOffset)
string NTV2OutputDestinationToString(const NTV2OutputDestination inValue, const bool inForRetailDisplay)
@ M31_FILE_4096X2160_420_10_60p
NTV2FrameGeometry GetNormalizedFrameGeometry(const NTV2FrameGeometry inFrameGeometry)
@ NTV2_AUDIO_HDMI
Obtain audio samples from the device HDMI input, if available.
bool IsYCbCrFormat(const NTV2FrameBufferFormat format)
@ NTV2_FORMAT_1080p_2K_6000_A
@ NTV2_XptFrameBuffer8RGB
NTV2Channel NTV2OutputDestinationToChannel(const NTV2OutputDestination inOutputDest)
Converts a given NTV2OutputDestination to its equivalent NTV2Channel value.
@ NTV2_XptMixer1FGVidInput
static const char * m31Presets[M31_NUMVIDEOPRESETS]
@ NTV2_FG_720x598
720x576, for PAL 625i, NTV2_VANCMODE_TALL
@ NTV2_BITFILE_KONAIP_2022
@ NTV2_BITFILE_IO4KUFC_MAIN
#define AJA_NTV2_SDK_BUILD_NUMBER
The SDK build number, an unsigned decimal integer.
@ NTV2_FBF_10BIT_YCBCR
See 10-Bit YCbCr Format.
@ NTV2_TCINDEX_SDI1_2
SDI 1 embedded VITC 2.
void PackRGB10BitFor10BitDPX(RGBAlpha10BitPixel *pBuffer, const ULWord inNumPixels, const bool bigEndian=true)
@ NTV2_XptFrameBuffer8Input
@ NTV2_1080i_2398to720p_2398
@ M31_VIF_720X480_422_10_60i
@ NTV2_FBF_PRORES_DVCPRO
Apple ProRes DVC Pro.
@ NTV2_XptMixer4FGKeyInput
void Fill4k8BitYCbCrVideoFrame(PULWord _baseVideoAddress, NTV2FrameBufferFormat frameBufferFormat, YCbCrPixel color, bool vancEnabled, bool b4k, bool wideVANC)
@ M31_FILE_1280X720_422_10_50p
@ NTV2_XptStereoRightInput
@ NTV2_VANCMODE_TALLER
This identifies the mode in which there are some + extra VANC lines in the frame buffer.
NTV2Standard Get4xSizedStandard(const NTV2Standard inStandard, const bool bIs4k)
string NTV2GetBitfileName(const NTV2DeviceID inBoardID)
@ NTV2_IOKINDS_ALL
Specifies any/all input/output kinds.
@ M31_FILE_1280X720_422_10_30p
@ NTV2IpErrInvalidBitdepth
Used to describe Start of Active Video (SAV) location and field dominance for a given NTV2Standard....
bool NTV2DeviceHasSDIRelays(const NTV2DeviceID inDeviceID)
@ NTV2_FORMAT_4x1920x1080p_5994_B
@ NTV2_TCINDEX_SDI3
SDI 3 embedded VITC.
NTV2IOKinds GetNTV2InputSourceKind(const NTV2InputSource inSrc)
@ NTV2_XptFrameSync1Input
#define NTV2_NUMAUDIO_CHANNELS
@ NTV2_HDMIProtocolHDMI
HDMI protocol.
@ NTV2_FORMAT_3840x2160p_5000_B
@ NTV2_FORMAT_4096x2160p_3000
void UnPack10BitDPXtoRGBAlpha10BitPixel(RGBAlpha10BitPixel *rgba10BitBuffer, const ULWord *DPXLinebuffer, ULWord numPixels, bool bigEndian)
@ M31_FILE_3840X2160_422_8_30p
ULWord GetIndexForNTV2InputSource(const NTV2InputSource inValue)
NTV2FrameGeometry GetNTV2FrameGeometryFromVideoFormat(const NTV2VideoFormat inVideoFormat)
NTV2FrameGeometry GetGeometryFromFrameDimensions(const NTV2FrameDimensions &inFD)
@ NTV2_1080psf_2500to1080i_2500
@ NTV2_XptFrameBuffer6RGB
void StackQuadrants(uint8_t *pSrc, uint32_t srcWidth, uint32_t srcHeight, uint32_t srcRowBytes, uint8_t *pDst)
@ NTV2_XptDualLinkIn6DSInput
@ NTV2Scan_Interlaced
Interlaced.
@ M31_FILE_1920X1080_422_10_50p
@ NTV2_XptFrameBuffer2Input
NTV2VideoLimiting
These enum values identify the available SDI video output limiting modes.
@ NTV2_AUDIOSYSTEM_3
This identifies the 3rd Audio System.
@ NTV2CROSSPOINT_CHANNEL3
@ NTV2_SIGNALMASK_Cb
Output Cb if set, elso Output Cb to 0x200.
@ NTV2_FORMAT_4x1920x1080psf_2500
@ NTV2_FORMAT_END_2K_DEF_FORMATS
@ NTV2_1080i_2500to720p_5000
NTV2Channel GetNTV2ChannelForIndex(const ULWord inIndex)
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_7
@ NTV2_FRAMERATE_5994
Fractional rate of 60,000 frames per 1,001 seconds.
@ NTV2_XptDualLinkIn8DSInput
@ NTV2_XptFrameBuffer4RGB
bool NTV2DeviceCanDoIP(const NTV2DeviceID inDeviceID)
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
NTV2FrameGeometry Get4xSizedGeometry(const NTV2FrameGeometry inGeometry)
Private include file for all ajabase sources.
@ DEVICE_ID_CORVID24
See Corvid 24.
@ NTV2_FORMAT_4x3840x2160p_2400
@ NTV2_XptMixer1BGVidInput
@ NTV2_VIDEOLIMITING_INVALID
@ NTV2_STANDARD_525
Identifies SMPTE SD 525i.
@ NTV2_FORMAT_4x4096x2160p_5000_B
@ M31_VIF_720X576_420_8_50p
static bool SetRasterLinesBlack10BitYCbCr(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
@ NTV2_UpConvertPillarbox4x3
@ NTV2_FBF_10BIT_RAW_YCBCR
See 10-Bit Raw YCbCr (CION).
@ DEVICE_ID_KONA1
See KONA 1.
bool IsVideoFormatJ2KSupported(const NTV2VideoFormat format)
INTERRUPT_ENUMS NTV2ChannelToOutputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent output INTERRUPT_ENUMS value.
@ NTV2_XptMultiLinkOut2InputDS2
New in SDK 16.0.
@ NTV2_XptMixer3BGVidInput
bool Is2KFormat(const NTV2VideoFormat format)
#define HEX0N(__x__, __n__)
@ NTV2_OUTPUTDESTINATION_INVALID
std::vector< NTV2OutputCrosspointID > NTV2OutputCrosspointIDs
An ordered sequence of NTV2OutputCrosspointID values.
ULWord registerNumber
My register number to use in a ReadRegister or WriteRegister call.
@ M31_FILE_2048X1080_420_8_30p
void ConvertARGBToBGR(const UByte *pInRGBALineBuffer, UByte *pOutRGBLineBuffer, const ULWord inNumPixels)
@ NTV2_BITFILE_KONA5_OE12_MAIN
@ NTV2_AUDIO_LOOPBACK_ON
Embeds SDI input source audio into the data stream.
@ NTV2_FORMAT_4x2048x1080p_2500
static bool CopyRaster16BytesPer6Pixels(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
void Make10BitWhiteLine(UWord *pOutLineData, const ULWord inNumPixels)
Writes a line of unpacked, legal SMPTE 10-bit Y/C white values into the given buffer.
@ NTV2_FORMAT_4x1920x1080p_5994
static UByte * GetWriteAddress_2vuy(UByte *pInFrameBuffer, const ULWord inBytesPerVertLine, const UWord inVertLineOffset, const UWord inHorzPixelOffset, const UWord inBytesPerHorzPixel)
@ NTV2_FORMAT_4x4096x2160p_5000
NTV2RegisterWriteMode
These values are used to determine when certain register writes actually take effect....
@ M31_VIF_1920X1080_420_10_5994p
@ M31_FILE_4096X2160_422_10_5994p_IF
@ NTV2_BITFILE_CORVID24_MAIN
@ M31_VIF_1920X1080_420_8_60p
@ NTV2_MODE_CAPTURE
Capture (input) mode, which writes into device SDRAM.
@ DEVICE_ID_IO4KPLUS
See Io 4K Plus.
@ NTV2_XptStereoCompressorOut
@ NTV2_INPUTSOURCE_SDI8
Identifies the 8th SDI video input.
@ NTV2_FORMAT_4x3840x2160p_6000
@ NTV2_BITFILE_CORVIDHEVC
@ NTV2_FORMAT_4x2048x1080p_4800_B
@ NTV2MIXERINPUTCONTROL_FULLRASTER
@ NTV2_XptCompressionModInput
@ NTV2_XptDualLinkOut3Input
@ NTV2_STANDARD_3840HFR
Identifies high frame-rate UHD.
@ NTV2_FBF_10BIT_YCBCR_DPX
See 10-Bit YCbCr - DPX Format.
@ NTV2_BITFILE_KONA5_OE9_MAIN
@ NTV2_525_5994to720p_5994
@ NTV2_720p_6000to1080i_3000
@ M31_FILE_1280X720_422_10_2997p
@ NTV2_INPUTSOURCE_SDI2
Identifies the 2nd SDI video input.
@ NTV2IpErrInvalidMBResponseSize
@ NTV2_XptFrameBuffer2YUV
#define NTV2_IS_4K_QUADHD_VIDEO_FORMAT(__f__)
bool GetChangedRegisters(const NTV2RegisterReads &inBefore, const NTV2RegisterReads &inAfter, NTV2RegNumSet &outChanged)
@ DEVICE_ID_CORVID44
See Corvid 44.
@ M31_FILE_1280X720_422_10_2398p
@ NTV2_FBF_10BIT_YCBCR_422PL3_LE
See 3-Plane 10-Bit YCbCr 4:2:2 ('I422_10LE' a.k.a. 'YUV-P-L10').
@ M31_FILE_2048X1080_420_8_2997p
@ NTV2_DEVICEKIND_6G
Specifies devices that have 6G SDI connectors.
@ NTV2_BITFILE_KONA5_OE8_MAIN
@ NTV2_TCINDEX_LTC2
Analog LTC 2.
string NTV2StandardToString(const NTV2Standard inValue, const bool inForRetailDisplay)
@ NTV2_XptFrameBuffer5RGB
string NTV2ReferenceSourceToString(const NTV2ReferenceSource inValue, const bool inForRetailDisplay)
string NTV2VANCModeToString(const NTV2VANCMode inValue, const bool inCompactDisplay)
@ NTV2_XptFrameBuffer5DS2Input
void Convert16BitARGBTo12BitRGBPacked(RGBAlpha16BitPixel *rgbaLineBuffer, UByte *rgbLineBuffer, ULWord numPixels)
@ NTV2_AUDIO_EMBEDDED
Obtain audio samples from the audio that's embedded in the video HANC.
@ NTV2_XptFrameBuffer5_DS2YUV
@ M31_FILE_1280X720_420_8_2398p
@ NTV2WidgetType_HDMIInV3
@ NTV2_STANDARD_2Kx1080i
Identifies SMPTE HD 2K1080psf.
@ NTV2_FRAMERATE_UNKNOWN
Represents an unknown or invalid frame rate.
@ NTV2_XptFrameBuffer7YUV
INTERRUPT_ENUMS NTV2ChannelToInputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent input INTERRUPT_ENUMS value.
#define NTV2_IS_VALID_FIELD(__x__)
@ NTV2_XptDualLinkIn5Input
@ NTV2_FORMAT_1080p_5000_A
@ DEVICE_ID_KONA4
See KONA 4 (Quad Mode).
@ NTV2_FORMAT_4x2048x1080p_6000
int RecordCopyAudio(PULWord pAja, PULWord pSR, int iStartSample, int iNumBytes, int iChan0, int iNumChans, bool bKeepAudio24Bits)
@ M31_VIF_720X576_422_10_50p
#define CCIR601_8BIT_CHROMAOFFSET
@ NTV2_FORMAT_3840x2160psf_2997
@ M31_FILE_2048X1080_422_10_30p
@ NTV2_XptMixer2BGVidInput
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
@ NTV2_STANDARD_8192
Identifies 8K.
#define CCIR601_10BIT_CHROMAOFFSET
@ NTV2_FORMAT_4096x2160p_5000
@ NTV2_MAX_NUM_AudioBufferSizes
@ NTV2_TCINDEX_DEFAULT
The "default" timecode (mostly used by the AJA "Retail" service and Control Panel)
string NTV2AudioFormatToString(const NTV2AudioFormat inValue, const bool inCompact)
double GetFramesPerSecond(const NTV2FrameRate inFrameRate)
@ NTV2_TCINDEX_SDI6_2
SDI 6 embedded VITC 2.
void UnPack10BitYCbCrBuffer(uint32_t *packedBuffer, uint16_t *ycbcrBuffer, uint32_t numPixels)
@ NTV2WidgetType_WaterMarker
@ NTV2_XptDuallinkOut5DS2
@ NTV2_XptDualLinkIn6Input
NTV2InputSource GetNTV2HDMIInputSourceForIndex(const ULWord inIndex0)
@ NTV2_BITFILE_SOJI_OE5_MAIN
ULWord GetAudioSamplesPerFrame(const NTV2FrameRate inFrameRate, const NTV2AudioRate inAudioRate, ULWord inCadenceFrame, const bool inIsSMPTE372Enabled)
Returns the number of audio samples for a given video frame rate, audio sample rate,...
@ NTV2_BITFILE_CORVID1_MAIN
@ NTV2_FORMAT_4x1920x1080p_5000
@ M31_FILE_720X480_422_10_5994p
@ NTV2_FBF_8BIT_YCBCR_420PL3
See 3-Plane 8-Bit YCbCr 4:2:0 ('I420' a.k.a. 'YUV-P420').
@ NTV2_BITFILE_KONA4_MAIN
@ NTV2_STANDARD_720
Identifies SMPTE HD 720p.
string NTV2EmbeddedAudioClockToString(const NTV2EmbeddedAudioClock inValue, const bool inForRetailDisplay)
@ NTV2_FORMAT_4x1920x1080p_2398
string NTV2ChannelToString(const NTV2Channel inValue, const bool inForRetailDisplay)
@ NTV2_FG_2048x1112
2048x1080, for 2Kx1080p, NTV2_VANCMODE_TALL
@ DEVICE_ID_TTAP
See T-TAP.
@ NTV2_XptDualLinkOut6Input
NTV2Crosspoint GetNTV2CrosspointInputForIndex(const ULWord index)
void setHDRDefaultsForDCIP3(HDRRegValues &outRegisterValues)
NTV2FrameGeometry
Identifies a particular video frame geometry.
@ M31_VIF_720X576_422_10_50i
@ NTV2_XptDualLinkOut2Input
@ NTV2_FORMAT_1080p_6000_B
@ NTV2_FORMAT_4x4096x2160p_5994_B
@ NTV2_XptCSC1KeyFromInput2
@ DEVICE_ID_KONA5_OE3
See KONA 5.
NTV2EveryFrameTaskMode
Describes the task mode state. See also: Sharing AJA Devices With Other Applications.
std::set< NTV2DeviceID > NTV2DeviceIDSet
A set of NTV2DeviceIDs.
@ NTV2_FORMAT_4096x2160p_2997
@ NTV2_REGWRITE_SYNCTOFIELD
Field Mode: Register changes take effect at the next field VBI.
@ M31_FILE_1280X720_422_10_60p
@ NTV2_XptDualLinkIn4DSInput
@ NTV2_XptFrameBuffer6DS2Input
@ NTV2_TCINDEX_SDI3_LTC
SDI 3 embedded ATC LTC.
@ NTV2_OUTPUTDESTINATION_SDI7
@ NTV2_BITFILE_LHI_T_MAIN
@ NTV2_REFERENCE_INPUT2
Specifies the SDI In 2 connector.
@ NTV2_FBF_8BIT_DVCPRO
See 8-Bit DVCPro.
@ NTV2_FORMAT_4096x2160p_5994_B
@ NTV2_FORMAT_4x3840x2160p_5994_B
@ NTV2WidgetType_AnalogIn
@ DEVICE_ID_KONA5_OE7
See KONA 5.
@ NTV2_WgtUpDownConverter2
@ NTV2_FORMAT_1080p_5994_A
@ NTV2_FORMAT_4x3840x2160p_6000_B
@ NTV2_FG_2048x1114
2048x1080, NTV2_VANCMODE_TALLER
ULWord GetNTV2FrameGeometryHeight(const NTV2FrameGeometry inGeometry)
@ NTV2_FBF_8BIT_YCBCR_422PL2
8-Bit 4:2:2 2-Plane YCbCr
@ NTV2_720p_2398to1080i_2398
@ NTV2_BITFILE_CORVID22_MAIN
@ NTV2_FORMAT_END_HIGH_DEF_FORMATS2
@ DEVICE_ID_KONA5_OE10
See KONA 5.
NTV2Audio4ChannelSelect
Identifies a contiguous, adjacent group of four audio channels.
@ NTV2_FORMAT_4x2048x1080p_5994
@ NTV2_OUTPUTDESTINATION_SDI4
@ M31_VIF_720X480_420_8_5994i
@ M31_FILE_1920X1080_422_10_2997p
static const NTV2TCIndex gChanVITC1[]
NTV2StringList::const_iterator NTV2StringListConstIter
@ M31_VIF_1920X1080_422_10_5994i
@ NTV2IpErrInvalidUllHeight
@ NTV2WidgetType_HDMIOutV3
static bool CheckFrameRateFamiliesInitialized(void)
@ M31_FILE_1280X720_422_10_25p
NTV2FrameRate GetNTV2FrameRateFromVideoFormat(const NTV2VideoFormat videoFormat)
@ M31_VIF_1280X720_422_10_5994p
@ NTV2_BITFILE_TTAP_PRO_MAIN
@ NTV2_FG_4x1920x1080
3840x2160, for UHD, NTV2_VANCMODE_OFF
@ NTV2_XptFrameBuffer5Input
@ NTV2WidgetType_StereoCompressor
uint16_t NTV2DeviceKinds
A combination of NTV2DeviceKindFilter values.
@ NTV2_FORMAT_4x3840x2160p_3000
#define AJA_NTV2_SDK_VERSION_MINOR
The SDK minor version number, an unsigned decimal integer.
@ NTV2_FORMAT_1080p_2K_5994_B
@ NTV2_AUDIOSYSTEM_5
This identifies the 5th Audio System.
@ NTV2_INVALID_HDMI_COLORSPACE
@ M31_FILE_3840X2160_422_10_2997p
@ M31_VIF_1920X1080_420_10_5994i
@ NTV2WidgetType_DualLinkV2Out
@ NTV2_BITFILE_KONA3G_QUAD
@ NTV2_FBF_16BIT_ARGB
16-Bit ARGB
string NTV2VideoFormatToString(const NTV2VideoFormat inFormat, const bool inUseFrameRate)
#define NTV2_IS_4K_4096_VIDEO_FORMAT(__f__)
@ NTV2_MODE_INVALID
The invalid mode.
@ NTV2_MAX_NUM_UpConvertModes
#define NTV2_INPUT_SOURCE_IS_SDI(_inpSrc_)
enum NTV2AncillaryDataRegion NTV2AncDataRgn
NTV2Crosspoint NTV2ChannelToInputCrosspoint(const NTV2Channel inChannel)
#define NTV2_IS_VANCMODE_TALL(__v__)
static bool SetRasterLinesWhite10BitYCbCr(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
@ M31_FILE_1920X1080_422_10_5994i
bool Fill(const T &inValue)
Fills me with the given scalar value.
@ NTV2_FBF_8BIT_YCBCR_422PL3
See 3-Plane 8-Bit YCbCr 4:2:2 (Weitek 'Y42B' a.k.a. 'YUV-P8').
@ DEVICE_ID_KONA3GQUAD
See KONA 3G (Quad Mode).
@ M31_FILE_3840X2160_422_10_60p
@ DEVICE_ID_CORVIDHBR
See Corvid HB-R.
bool CopyRaster(const NTV2PixelFormat inPixelFormat, UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
Copies all or part of a source raster image into a destination raster at a given position.
ULWord GetVideoWriteSize(const NTV2VideoFormat inVideoFormat, const NTV2FrameBufferFormat inFBFormat, const NTV2VANCMode inVancMode)
Identical to the GetVideoActiveSize function, except rounds the result up to the nearest 4K page size...
@ NTV2_TCINDEX_SDI8
SDI 8 embedded VITC.
UWord NTV2DeviceGetNumVideoOutputs(const NTV2DeviceID inDeviceID)
@ NTV2_HDMIColorSpaceRGB
RGB color space.
@ M31_FILE_2048X1080_422_10_2398p
@ NTV2_FORMAT_3840x2160p_5000
@ M31_FILE_1920X1080_420_8_60i
@ NTV2_XptFrameBuffer3_DS2RGB
#define NTV2_IS_OUTPUT_CROSSPOINT(__x__)
bool Is8BitFrameBufferFormat(const NTV2FrameBufferFormat format)
@ NTV2_BITFILE_KONAIP_1RX_1TX_2110
@ NTV2_FORMAT_4096x2160psf_3000
@ NTV2_XptSDIOut7InputDS2
bool NTV2DeviceCanDoCustomAnc(const NTV2DeviceID inDeviceID)
@ NTV2_BITFILE_SOJI_3DLUT_MAIN
@ NTV2IpErrSFP1NotConfigured
@ NTV2WidgetType_SDIMonOut
@ NTV2_AUDIO_ANALOG
Obtain audio samples from the device analog input(s), if available.
@ NTV2_XptWaterMarker2Input
@ M31_FILE_3840X2160_422_8_24p
@ NTV2_FG_1280x740
1280x720, for 720p, NTV2_VANCMODE_TALL
@ NTV2WidgetType_DualLinkV1Out
@ NTV2_FORMAT_1080p_2K_5000_A
@ NTV2_AUDIO_BUFFER_STANDARD
@ NTV2_TCINDEX_SDI8_LTC
SDI 8 embedded ATC LTC.
@ NTV2_FRAMERATE_5000
50 frames per second
void ConvertARGBYCbCrToRGBA(UByte *rgbaBuffer, ULWord numPixels)
@ NTV2_FORMAT_4x4096x2160p_4795_B
@ NTV2_XptMultiLinkOut1DS4
New in SDK 16.0.
@ NTV2_TCINDEX_SDI6_LTC
SDI 6 embedded ATC LTC.
@ NTV2_AUDIO_FORMAT_INVALID
std::vector< NTV2DeviceID > NTV2DeviceIDList
An ordered list of NTV2DeviceIDs.
#define CCIR601_8BIT_WHITE
@ NTV2_FORMAT_4x2048x1080psf_2500
@ M31_FILE_2048X1080_422_10_2997p
@ NTV2_FBF_10BIT_RGB
See 10-Bit RGB Format.
@ NTV2_625_2500to625_2500
@ DEVICE_ID_KONA5_OE11
See KONA 5.
@ NTV2_INPUTSOURCE_SDI3
Identifies the 3rd SDI video input.
@ NTV2_DEVICEKIND_OUTPUT
Specifies devices that output (playout).
NTV2FrameRateFamilies::const_iterator NTV2FrameRateFamiliesConstIter
@ NTV2_FG_2048x1556
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_OFF
@ M31_VIF_1920X1080_420_8_5994p
string SerialNum64ToString(const uint64_t &inSerNum)
@ NTV2_BITFILE_KONA5_8K_MV_TX_MAIN
@ NTV2_REFERENCE_EXTERNAL
Specifies the External Reference connector.
std::string NTV2GetVersionString(const bool inDetailed)
@ NTV2_FRAMERATE_4795
Fractional rate of 48,000 frames per 1,001 seconds.
NTV2EmbeddedAudioInput NTV2ChannelToEmbeddedAudioInput(const NTV2Channel inChannel)
Converts the given NTV2Channel value into its equivalent NTV2EmbeddedAudioInput.
string NTV2AncDataRgnToStr(const NTV2AncDataRgn inValue, const bool inCompactDisplay)
@ NTV2_XptMultiLinkOut2DS4
New in SDK 16.0.
@ M31_FILE_2048X1080_422_10_25p
NTV2DeviceID NTV2GetDeviceIDFromBitfileName(const string &inBitfileName)
NTV2EmbeddedAudioInput
This enum value determines/states which SDI video input will be used to supply audio samples to an au...
@ NTV2_FRAMERATE_3000
30 frames per second
@ AUTOCIRCVIDPROCMODE_INVALID
std::string NTV2DeviceIDToString(const NTV2DeviceID inValue, const bool inForRetailDisplay)
bool Is8KFormat(const NTV2VideoFormat format)
static bool CopyRaster3BytesPerPixel(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
@ M31_FILE_720X480_422_10_5994i
uint16_t maxFrameAverageLightLevel
#define NTV2_IS_VALID_AUDIO_CHANNEL_PAIR(__p__)
@ M31_VIF_1920X1080_420_10_60i
uint32_t CalcRowBytesForFormat(const NTV2FrameBufferFormat inPixelFormat, const uint32_t inPixelWidth)
bool SetRasterLinesWhite(const NTV2PixelFormat inPixelFormat, UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
Sets all or part of a destination raster image to legal white.
@ M31_FILE_1280X720_420_8_50p
bool Is4KFormat(const NTV2VideoFormat format)
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information.
@ NTV2_FORMAT_1080p_2K_5000_B
@ NTV2_AUDIO_RATE_INVALID
@ NTV2_XptFrameBuffer5YUV
@ AUTOCIRCVIDPROCMODE_MIX
#define NTV2_IS_SUPPORTED_NTV2FrameRate(__r__)
@ M31_FILE_1920X1080_422_10_5994p
@ DEVICE_ID_IOIP_2110_RGB12
See Io IP.
#define NTV2_IS_VALID_AUDIO_SYSTEM(__x__)
@ NTV2_FG_4x3840x2160
7680x4320, for UHD2, NTV2_VANCMODE_OFF
@ NTV2_FORMAT_FIRST_4K_DEF_FORMAT
@ DEVICE_ID_KONA5_2X4K
See KONA 5.
@ M31_FILE_2048X1080_422_10_24p
static bool SetRasterLinesBlack8BitYCbCr(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines)
@ M31_VIF_1920X1080_420_10_50i
@ NTV2_XptMixer1BGKeyInput
@ NTV2_FORMAT_1080psf_2997_2
@ NTV2_REFERENCE_INPUT8
Specifies the SDI In 8 connector.
enum _NTV2ScanMethod NTV2ScanMethod
Identifies a particular scan method.
@ NTV2_TCINDEX_LTC1
Analog LTC 1.
#define NTV2_INPUT_SOURCE_IS_ANALOG(_inpSrc_)
#define NTV2_IS_VALID_VANCMODE(__v__)
@ NTV2_FORMAT_4x4096x2160p_5994
@ NTV2_FORMAT_4x2048x1080p_2400
@ NTV2_EMBEDDED_AUDIO_CLOCK_INVALID
@ NTV2_AUDIOSYSTEM_6
This identifies the 6th Audio System.
@ NTV2IpErrTimeoutNoBytecount
NTV2MixerKeyerMode
These enum values identify the mixer mode.
@ M31_FILE_1920X1080_420_8_5994i
NTV2Audio8ChannelSelect
Identifies a contiguous, adjacent group of eight audio channels.
@ NTV2_BITFILE_KONA5_OE7_MAIN
@ NTV2_MODE_DISPLAY
Playout (output) mode, which reads from device SDRAM.
@ NTV2_XptMultiLinkOut1DS3
New in SDK 16.0.
@ NTV2_FORMAT_1080p_2K_4800_B
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_2
@ NTV2_REFERENCE_HDMI_INPUT3
Specifies the HDMI In 3 connector.
@ DEVICE_ID_KONA5_OE2
See KONA 5.
void MakeUnPacked10BitYCbCrBuffer(uint16_t *buffer, uint16_t Y, uint16_t Cb, uint16_t Cr, uint32_t numPixels)
@ NTV2_XptFrameBuffer2DS2Input
NTV2AudioSource
This enum value determines/states where an audio system will obtain its audio samples.
@ NTV2_STANDARD_7680
Identifies UHD2.
void ConvertLineto10BitRGB(UWord *ycbcrBuffer, RGBAlpha10BitPixel *rgbaBuffer, ULWord numPixels, bool fUseSDMatrix, bool fUseSMPTERange=false)
@ NTV2_DEVICEKIND_ALL
Specifies any/all devices.
@ NTV2_FORMAT_4x1920x1080p_2400
Declares the CNTV2RegisterExpert class.
bool IsPSF(const NTV2VideoFormat format)
@ NTV2_FORMAT_4x1920x1080psf_2400
@ M31_FILE_3840X2160_420_8_25p
@ DEVICE_ID_SOFTWARE
Software device that doesn't emulate one of the above devices.
@ NTV2_FG_1920x1080
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_OFF
@ NTV2_HDMIColorSpaceAuto
Automatic (not for OEM use)
NTV2Crosspoint
Logically, these are an NTV2Channel combined with an NTV2Mode.
@ NTV2_FORMAT_3840x2160p_6000_B
@ NTV2_XptFrameBuffer7RGB
NTV2VideoFormat GetOutputForConversionMode(const NTV2ConversionMode conversionMode)
#define NTV2_AUDIOSAMPLESIZE
@ NTV2_BITFILE_KONAIP_2110_RGB12
string NTV2AudioChannelOctetToString(const NTV2Audio8ChannelSelect inValue, const bool inCompactDisplay)
@ NTV2_FORMAT_1080psf_2500_2
@ DEVICE_ID_IO4K
See Io 4K (Quad Mode).
@ NTV2_BITFILE_SOJI_OE3_MAIN
NTV2InputSource GetNTV2InputSourceForIndex(const ULWord inIndex0, const NTV2IOKinds inKinds)
@ NTV2_FORMAT_4096x2160p_4795_B
@ NTV2_720p_5994to525_5994
@ NTV2_XptWaterMarker2RGB
uint8_t staticMetadataDescriptorID
@ DEVICE_ID_KONALHI
See KONA LHi.
@ DEVICE_ID_NOTFOUND
Invalid or "not found".
void MaskUnPacked10BitYCbCrBuffer(uint16_t *ycbcrUnPackedBuffer, uint16_t signalMask, uint32_t numPixels)
@ NTV2_WgtUpDownConverter1
@ NTV2_FORMAT_4096x2160p_4800_B
@ NTV2_FORMAT_3840x2160p_2400
void ConvertUnpacked10BitYCbCrToPixelFormat(uint16_t *unPackedBuffer, uint32_t *packedBuffer, uint32_t numPixels, NTV2FrameBufferFormat pixelFormat, bool bUseSmpteRange, bool bAlphaFromLuma)
static AJALock sFRFamMutex
@ M31_VIF_1920X1080_422_10_60p
NTV2AudioBufferSize
Represents the size of the audio buffer used by a device audio system for storing captured samples or...
@ M31_FILE_2048X1080_420_8_24p
@ DEVICE_ID_KONA5_OE4
See KONA 5.
@ NTV2_AncRgn_All
Identifies "all" ancillary data regions.
uint8_t electroOpticalTransferFunction
@ NTV2_FBF_ABGR
See 8-Bit ARGB, RGBA, ABGR Formats.
@ NTV2_AUDIO_SOURCE_INVALID
bool GetRegNumChanges(const NTV2RegNumSet &inBefore, const NTV2RegNumSet &inAfter, NTV2RegNumSet &outGone, NTV2RegNumSet &outSame, NTV2RegNumSet &outNew)
@ M31_FILE_3840X2160_420_10_5994p
#define NTV2_IS_VALID_VIDEO_FORMAT(__f__)
@ NTV2_OUTPUTDESTINATION_SDI5
@ NTV2_720p_5000to1080i_2500
@ NTV2_STANDARD_3840i
Identifies Ultra-High-Definition (UHD) psf.
NTV2Crosspoint NTV2ChannelToOutputCrosspoint(const NTV2Channel inChannel)
@ M31_VIF_3840X2160_420_8_60p
@ NTV2_1080i_6000to1080psf_3000
ULWord NTV2AudioBufferSizeToByteCount(const NTV2AudioBufferSize inBufferSize)
Converts the given NTV2BufferSize value into its exact byte count.
@ NTV2_XptSDIOut6InputDS2
@ NTV2_FORMAT_3840x2160p_3000
@ NTV2MIXERMODE_FOREGROUND_OFF
Passes only background video + key to the Mixer output.
@ NTV2_FORMAT_1080psf_2400
#define NTV2_IS_PROGRESSIVE_STANDARD(__s__)
@ NTV2WidgetType_HDMIOutV1
@ NTV2_OEM_TASKS
2: OEM (recommended): device configured by client application(s) with some driver involvement.
UWord NTV2GetSDKVersionComponent(const int inVersionComponent)
Returns an SDK version component value.
@ NTV2_XptDualLinkIn1DSInput
@ NTV2_BITFILE_SOJI_OE6_MAIN
@ NTV2_BITFILE_CORVID44_PLNR_MAIN
@ M31_FILE_2048X1080_420_8_5994p
@ NTV2_FORMAT_4096x2160p_5994
#define NTV2_FBF_HAS_ALPHA(__fbf__)
@ NTV2WidgetType_HDMIOutV2
@ NTV2_FORMAT_END_HIGH_DEF_FORMATS
@ DEVICE_ID_KONA5_OE6
See KONA 5.
static bool CopyRaster4BytesPer2Pixels(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
@ DEVICE_ID_KONA5_OE12
See KONA 5.
@ NTV2_OUTPUTDESTINATION_ANALOG1
string NTV2HDMIBitDepthToString(const NTV2HDMIBitDepth inValue, const bool inCompact)
@ NTV2_DEVICEKIND_SOFTWARE
Specifies software devices (that don't model "real" ones).
@ NTV2_REFERENCE_SFP1_PCR
Specifies the PCR source on SFP 1.
bool Fill10BitYCbCrVideoFrame(void *pBaseVideoAddress, const NTV2Standard inStandard, const NTV2FrameBufferFormat inFBF, const YCbCr10BitPixel inPixelColor, const NTV2VANCMode inVancMode)
@ NTV2_XptDualLinkOut1Input
@ DEVICE_ID_CORVID44_PLNR
See Corvid 44 12G.
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_5
@ NTV2_XptDuallinkOut3DS2
NTV2Standard GetNTV2StandardFromScanGeometry(const UByte inScanGeometry, const bool inIsProgressiveTransport)
@ NTV2_FORMAT_4x2048x1080psf_2997
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_3
@ NTV2_XptDualLinkOut8Input
@ NTV2_UpConvertZoomLetterbox
@ NTV2_VIDEOLIMITING_OFF
Disables normal FrameBuffer Y/C value read limiting (NOT RECOMMENDED).
@ NTV2_AUDIOSYSTEM_INVALID
NTV2VideoFormat GetTransportCompatibleFormat(const NTV2VideoFormat inFormat, const NTV2VideoFormat inTargetFormat)
@ NTV2_FORMAT_1080p_2K_2997
@ NTV2_1080i_3000to720p_6000
static bool CopyRaster6BytesPerPixel(UByte *pDstBuffer, const ULWord inDstBytesPerLine, const UWord inDstTotalLines, const UWord inDstVertLineOffset, const UWord inDstHorzPixelOffset, const UByte *pSrcBuffer, const ULWord inSrcBytesPerLine, const UWord inSrcTotalLines, const UWord inSrcVertLineOffset, const UWord inSrcVertLinesToCopy, const UWord inSrcHorzPixelOffset, const UWord inSrcHorzPixelsToCopy)
@ NTV2_SIGNALMASK_Cr
Output Cr if set, elso Output Cr to 0x200.
@ DEVICE_ID_IOEXPRESS
See Io Express.