 |
AJA NTV2 SDK
18.0.0.2717
NTV2 SDK 18.0.0.2717
|
Go to the documentation of this file.
37 #define NTV2UTILS_ENUM_CASE_RETURN_STR(enum_name) case(enum_name): return #enum_name
39 #define NTV2UTILS_ENUM_CASE_RETURN_VAL_OR_ENUM_STR(condition, retail_name, enum_name)\
40 case(enum_name): return condition ? retail_name : #enum_name
48 uint32_t rowBytes = 0;
50 switch (inPixelFormat)
54 rowBytes = inPixelWidth * 2;
59 rowBytes = (( inPixelWidth % 48 == 0 ) ? inPixelWidth : (((inPixelWidth / 48 ) + 1) * 48)) * 8 / 3;
69 rowBytes = inPixelWidth * 4;
74 rowBytes = inPixelWidth * 3;
78 rowBytes = inPixelWidth * 2/4;
82 rowBytes = inPixelWidth * 6;
86 rowBytes = inPixelWidth * 36 / 8;
91 rowBytes = inPixelWidth * 20 / 16;
96 rowBytes = inPixelWidth;
100 rowBytes = inPixelWidth * 5;
125 out16BitYUVLine.clear();
126 const ULWord * pInputLine (
reinterpret_cast <const ULWord *
> (pIn10BitYUVLine));
133 inNumPixels -= inNumPixels % 6;
135 const ULWord totalULWords (inNumPixels * 4 / 6);
136 out16BitYUVLine.reserve(totalULWords * 3);
137 for (
ULWord inputCount (0); inputCount < totalULWords; inputCount++)
139 out16BitYUVLine.push_back ((pInputLine [inputCount] ) & 0x3FF);
140 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 10) & 0x3FF);
141 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 20) & 0x3FF);
149 out16BitYUVLine.clear();
150 const ULWord * pInputLine (
reinterpret_cast <const ULWord *
> (pIn10BitYUVLine));
156 if (inFormatDesc.GetRasterWidth() < 6)
161 out16BitYUVLine.reserve(inFormatDesc.
linePitch * 3);
162 for (
ULWord inputCount (0); inputCount < inFormatDesc.
linePitch; inputCount++)
164 out16BitYUVLine.push_back ((pInputLine [inputCount] ) & 0x3FF);
165 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 10) & 0x3FF);
166 out16BitYUVLine.push_back ((pInputLine [inputCount] >> 20) & 0x3FF);
174 out16BitARGBLine.clear();
175 const UByte * pInputLine (
reinterpret_cast <const UByte *
> (pIn10BitARGBLine));
181 if (inFormatDesc.GetRasterWidth() < 1)
186 out16BitARGBLine.reserve(inFormatDesc.
linePitch * 4);
187 for (
ULWord inputCount (0); inputCount < inFormatDesc.
linePitch; inputCount++)
189 out16BitARGBLine.push_back ((
UWord(pInputLine[1] & 0x03) << 8) | (
UWord(pInputLine[0] & 0xFF) >> 0));
190 out16BitARGBLine.push_back ((
UWord(pInputLine[2] & 0x0F) << 6) | (
UWord(pInputLine[1] & 0xFC) >> 2));
191 out16BitARGBLine.push_back ((
UWord(pInputLine[3] & 0x3F) << 4) | (
UWord(pInputLine[2] & 0xF0) >> 4));
192 out16BitARGBLine.push_back ((
UWord(pInputLine[4] & 0xFF) << 2) | (
UWord(pInputLine[3] & 0xC0) >> 6));
203 for ( uint32_t sampleCount = 0, dataCount = 0;
204 sampleCount < (numPixels*2) ;
205 sampleCount+=3,dataCount++ )
207 ycbcrBuffer[sampleCount] = packedBuffer[dataCount]&0x3FF;
208 ycbcrBuffer[sampleCount+1] = (packedBuffer[dataCount]>>10)&0x3FF;
209 ycbcrBuffer[sampleCount+2] = (packedBuffer[dataCount]>>20)&0x3FF;
218 for ( uint32_t inputCount=0, outputCount=0;
219 inputCount < (numPixels*2);
220 outputCount += 4, inputCount += 12 )
222 packedBuffer[outputCount] = uint32_t (ycbcrBuffer[inputCount+0]) + uint32_t (ycbcrBuffer[inputCount+1]<<10) + uint32_t (ycbcrBuffer[inputCount+2]<<20);
223 packedBuffer[outputCount+1] = uint32_t (ycbcrBuffer[inputCount+3]) + uint32_t (ycbcrBuffer[inputCount+4]<<10) + uint32_t (ycbcrBuffer[inputCount+5]<<20);
224 packedBuffer[outputCount+2] = uint32_t (ycbcrBuffer[inputCount+6]) + uint32_t (ycbcrBuffer[inputCount+7]<<10) + uint32_t (ycbcrBuffer[inputCount+8]<<20);
225 packedBuffer[outputCount+3] = uint32_t (ycbcrBuffer[inputCount+9]) + uint32_t (ycbcrBuffer[inputCount+10]<<10) + uint32_t (ycbcrBuffer[inputCount+11]<<20);
232 for ( uint32_t count = 0; count < numPixels*2; count+=4 )
236 buffer[count+2] = Cr;
246 for (uint32_t pixel(0); pixel < numPixels * 2; pixel++)
247 ycbcr8BitBuffer[pixel] = uint8_t(ycbcr10BitBuffer[pixel] >> 2);
256 bool bUseSmpteRange,
bool bAlphaFromLuma)
372 switch ( signalMask )
375 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
384 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
392 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
401 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
409 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
419 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
427 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
450 void StackQuadrants(uint8_t* pSrc, uint32_t srcWidth, uint32_t srcHeight, uint32_t srcRowBytes,
456 uint32_t copyRowBytes = srcRowBytes/2;
457 uint32_t copyHeight = srcHeight/2;
458 uint32_t dstRowBytes = copyRowBytes;
459 uint32_t dstHeight = srcHeight/2;
463 uint32_t srcLHSQuadrantRowBytes = srcRowBytes/2;
465 for (uint32_t quadrant=0; quadrant<4; quadrant++)
471 case 0: srcSample = 0;
break;
472 case 1: srcSample = srcLHSQuadrantRowBytes;
break;
473 case 2: srcSample = (srcRowBytes*copyHeight);
break;
474 case 3: srcSample = (srcRowBytes*copyHeight) + srcLHSQuadrantRowBytes;
break;
478 dstSample = quadrant * dstRowBytes * dstHeight;
480 for (uint32_t row=0; row<copyHeight; row++)
482 memcpy(&pDst[dstSample], &pSrc[srcSample], copyRowBytes);
483 dstSample += dstRowBytes;
484 srcSample += srcRowBytes;
491 void CopyFromQuadrant(uint8_t* srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t srcQuadrant, uint8_t* dstBuffer, uint32_t quad13Offset)
495 ULWord dstHeight = srcHeight / 2;
496 ULWord dstRowBytes = srcRowBytes / 2;
502 case 0: srcSample = 0;
break;
503 case 1: srcSample = dstRowBytes - quad13Offset;
break;
504 case 2: srcSample = srcRowBytes*dstHeight;
break;
505 case 3: srcSample = srcRowBytes*dstHeight + dstRowBytes - quad13Offset;
break;
509 for (
ULWord i=0; i<dstHeight; i++)
511 memcpy(&dstBuffer[dstSample], &srcBuffer[srcSample], dstRowBytes);
512 dstSample += dstRowBytes;
513 srcSample += srcRowBytes;
519 void CopyToQuadrant(uint8_t* srcBuffer, uint32_t srcHeight, uint32_t srcRowBytes, uint32_t dstQuadrant, uint8_t* dstBuffer, uint32_t quad13Offset)
523 ULWord dstRowBytes = srcRowBytes * 2;
529 case 0: dstSample = 0;
break;
530 case 1: dstSample = srcRowBytes - quad13Offset;
break;
531 case 2: dstSample = dstRowBytes*srcHeight;
break;
532 case 3: dstSample = dstRowBytes*srcHeight + srcRowBytes - quad13Offset;
break;
536 for (
ULWord i=0; i<srcHeight; i++)
538 memcpy(&dstBuffer[dstSample], &srcBuffer[srcSample], srcRowBytes);
539 dstSample += dstRowBytes;
540 srcSample += srcRowBytes;
550 NTV2_ASSERT (pIn10BitYUVLine && pOut16BitYUVLine &&
"UnpackLine_10BitYUVto16BitYUV -- NULL buffer pointer(s)");
551 NTV2_ASSERT (inNumPixels &&
"UnpackLine_10BitYUVto16BitYUV -- Zero pixel count");
553 for (
ULWord outputCount = 0, inputCount = 0;
554 outputCount < (inNumPixels * 2);
555 outputCount += 3, inputCount++)
557 pOut16BitYUVLine [outputCount ] = pIn10BitYUVLine [inputCount] & 0x3FF;
558 pOut16BitYUVLine [outputCount + 1] = (pIn10BitYUVLine [inputCount] >> 10) & 0x3FF;
559 pOut16BitYUVLine [outputCount + 2] = (pIn10BitYUVLine [inputCount] >> 20) & 0x3FF;
566 NTV2_ASSERT (pIn16BitYUVLine && pOut10BitYUVLine &&
"PackLine_16BitYUVto10BitYUV -- NULL buffer pointer(s)");
567 NTV2_ASSERT (inNumPixels &&
"PackLine_16BitYUVto10BitYUV -- Zero pixel count");
569 for (
ULWord inputCount = 0, outputCount = 0;
570 inputCount < (inNumPixels * 2);
571 outputCount += 4, inputCount += 12)
573 pOut10BitYUVLine [outputCount ] =
ULWord (pIn16BitYUVLine [inputCount + 0]) + (
ULWord (pIn16BitYUVLine [inputCount + 1]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 2]) << 20);
574 pOut10BitYUVLine [outputCount + 1] =
ULWord (pIn16BitYUVLine [inputCount + 3]) + (
ULWord (pIn16BitYUVLine [inputCount + 4]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 5]) << 20);
575 pOut10BitYUVLine [outputCount + 2] =
ULWord (pIn16BitYUVLine [inputCount + 6]) + (
ULWord (pIn16BitYUVLine [inputCount + 7]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount + 8]) << 20);
576 pOut10BitYUVLine [outputCount + 3] =
ULWord (pIn16BitYUVLine [inputCount + 9]) + (
ULWord (pIn16BitYUVLine [inputCount +10]) << 10) + (
ULWord (pIn16BitYUVLine [inputCount +11]) << 20);
583 if (!pOut10BitYUVLine)
587 if (
ULWord(in16BitYUVLine.size()) < inNumPixels*2)
590 for (
ULWord inputCount = 0, outputCount = 0;
591 inputCount < (inNumPixels * 2);
592 outputCount += 4, inputCount += 12)
594 pOut10BitYUVLine[outputCount ] =
ULWord(in16BitYUVLine[inputCount + 0]) + (
ULWord(in16BitYUVLine[inputCount + 1]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 2]) << 20);
595 pOut10BitYUVLine[outputCount + 1] =
ULWord(in16BitYUVLine[inputCount + 3]) + (
ULWord(in16BitYUVLine[inputCount + 4]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 5]) << 20);
596 pOut10BitYUVLine[outputCount + 2] =
ULWord(in16BitYUVLine[inputCount + 6]) + (
ULWord(in16BitYUVLine[inputCount + 7]) << 10) + (
ULWord(in16BitYUVLine[inputCount + 8]) << 20);
597 pOut10BitYUVLine[outputCount + 3] =
ULWord(in16BitYUVLine[inputCount + 9]) + (
ULWord(in16BitYUVLine[inputCount +10]) << 10) + (
ULWord(in16BitYUVLine[inputCount +11]) << 20);
606 if (inYCbCrLine.size() < 12)
608 if (inFrameBuffer.
IsNULL())
617 const uint32_t pixPerLineX2 (inDescriptor.GetRasterWidth() * 2);
618 uint32_t * pOutPackedLine (
AJA_NULL);
626 for (uint32_t inputCount = 0, outputCount = 0; inputCount < pixPerLineX2; outputCount += 4, inputCount += 12)
628 if ((inputCount+11) >= uint32_t(inYCbCrLine.size()))
630 #if defined(_DEBUG) // 'at' throws upon bad index values
631 pOutPackedLine[outputCount] = uint32_t(inYCbCrLine.at(inputCount+0)) | uint32_t(inYCbCrLine.at(inputCount+ 1)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 2)<<20);
632 pOutPackedLine[outputCount+1] = uint32_t(inYCbCrLine.at(inputCount+3)) | uint32_t(inYCbCrLine.at(inputCount+ 4)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 5)<<20);
633 pOutPackedLine[outputCount+2] = uint32_t(inYCbCrLine.at(inputCount+6)) | uint32_t(inYCbCrLine.at(inputCount+ 7)<<10) | uint32_t(inYCbCrLine.at(inputCount+ 8)<<20);
634 pOutPackedLine[outputCount+3] = uint32_t(inYCbCrLine.at(inputCount+9)) | uint32_t(inYCbCrLine.at(inputCount+10)<<10) | uint32_t(inYCbCrLine.at(inputCount+11)<<20);
635 #else // 'operator[]' doesn't throw
636 pOutPackedLine[outputCount] = uint32_t(inYCbCrLine[inputCount+0]) | uint32_t(inYCbCrLine[inputCount+ 1]<<10) | uint32_t(inYCbCrLine[inputCount+ 2]<<20);
637 pOutPackedLine[outputCount+1] = uint32_t(inYCbCrLine[inputCount+3]) | uint32_t(inYCbCrLine[inputCount+ 4]<<10) | uint32_t(inYCbCrLine[inputCount+ 5]<<20);
638 pOutPackedLine[outputCount+2] = uint32_t(inYCbCrLine[inputCount+6]) | uint32_t(inYCbCrLine[inputCount+ 7]<<10) | uint32_t(inYCbCrLine[inputCount+ 8]<<20);
639 pOutPackedLine[outputCount+3] = uint32_t(inYCbCrLine[inputCount+9]) | uint32_t(inYCbCrLine[inputCount+10]<<10) | uint32_t(inYCbCrLine[inputCount+11]<<20);
649 outYCbCrLine.clear();
650 if (inFrameBuffer.
IsNULL())
658 if (inDescriptor.GetRasterWidth () < 6)
662 outYCbCrLine.reserve (inDescriptor.
linePitch * 3);
663 for (
ULWord inputCount(0); inputCount < inDescriptor.
linePitch; inputCount++)
665 outYCbCrLine.push_back((pInputLine[inputCount] ) & 0x3FF);
666 outYCbCrLine.push_back((pInputLine[inputCount] >> 10) & 0x3FF);
667 outYCbCrLine.push_back((pInputLine[inputCount] >> 20) & 0x3FF);
676 for (
UWord count = 0; count < numULWords; count++)
678 ULWord value = (packedycbcrLine[count])<<2;
679 value = (value<<24) + ((value>>24)&0x000000FF) + ((value<<8)&0x00FF0000) + ((value>>8)&0x0000FF00);
681 packedycbcrLine[count] = value;
687 for (
ULWord pixel=0;pixel<numPixels;pixel++)
689 ULWord value = DPXLinebuffer[pixel];
692 rgba10BitBuffer[pixel].
Red =
UWord((value&0xC0)>>14) +
UWord((value&0xFF)<<2);
693 rgba10BitBuffer[pixel].
Green =
UWord((value&0x3F00)>>4) +
UWord((value&0xF00000)>>20);
694 rgba10BitBuffer[pixel].
Blue =
UWord((value&0xFC000000)>>26) +
UWord((value&0xF0000)>>12);
698 rgba10BitBuffer[pixel].
Red = (value>>22)&0x3FF;
699 rgba10BitBuffer[pixel].
Green = (value>>12)&0x3FF;
700 rgba10BitBuffer[pixel].
Blue = (value>>2)&0x3FF;
709 for (
ULWord pixel=0;pixel<numPixels;pixel++)
711 ULWord value = DPXLinebuffer[pixel];
712 rawrp215Buffer[pixel] = ((value&0x3F00)>>4) + ((value&0xF00000)>>20);
719 for (
ULWord pixel=0;pixel<numPixels;pixel++)
721 ULWord value = DPXLinebuffer[pixel];
722 rawrp215Buffer[pixel] = ((value&0x3F)>>4) + ((value&0xF00000)>>20);
733 switch ( signalMask )
736 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
745 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
753 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
762 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
770 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
780 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
788 for ( pixelCount = 0; pixelCount < (numPixels*2); pixelCount += 4 )
808 if (pOutLineData && inNumPixels)
809 for (
ULWord count(0); count < inNumPixels; count++)
821 if (pOutLineData && inNumPixels)
822 for (
ULWord count(0); count < inNumPixels; count++)
832 if (pOutLineData && inNumPixels)
833 for (
ULWord count(0); count < inNumPixels*2; count+=4)
835 pOutLineData[count] = Cb;
836 pOutLineData[count+1] = Y;
837 pOutLineData[count+2] = Cr;
838 pOutLineData[count+3] = Y;
848 if (!pBaseVideoAddress)
852 UWord lineBuffer[2048*2];
853 ULWord * pBaseAddress (
reinterpret_cast<ULWord*
>(pBaseVideoAddress));
870 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
879 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
893 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
902 for ( uint32_t count = 0; count < numPixels*2; count+=2 )
916 for (
ULWord count = 0; count < numPixels*2; count += 4)
918 lineData[count] = Cb;
919 lineData[count+1] = Y;
920 lineData[count+2] = Cr;
921 lineData[count+3] = Y;
926 for (
ULWord count = 0; count < numPixels*2; count += 4)
929 lineData[count+1] = Cb;
930 lineData[count+2] = Y;
931 lineData[count+3] = Cr;
940 if (!pBaseVideoAddress)
944 UByte * pBaseAddress (
reinterpret_cast<UByte*
>(pBaseVideoAddress));
990 ULWord topPad = 0, bottomPad = 0, leftPad = 0, rightPad = 0;
993 ULWord* pSrc = pSrcBuffer;
994 ULWord* pDst = pDstBuffer;
996 if (dstHeight > srcHeight)
998 topPad = (dstHeight - srcHeight) / 2;
999 bottomPad = dstHeight - topPad - srcHeight;
1002 pSrc += ((srcHeight - dstHeight) / 2) * srcWidth;
1004 if (dstWidth > srcWidth)
1006 leftPad = (dstWidth - srcWidth) / 2;
1007 rightPad = dstWidth - srcWidth - leftPad;
1010 pSrc += (srcWidth - dstWidth) / 2;
1013 contentHeight = dstHeight - topPad - bottomPad;
1014 contentWidth = dstWidth - leftPad - rightPad;
1017 memset(pDst, 0, topPad * dstWidth * 4);
1018 pDst += topPad * dstWidth;
1021 while (contentHeight--)
1024 memset(pDst, 0, leftPad * 4);
1028 memcpy(pDst, pSrc, contentWidth * 4);
1029 pDst += contentWidth;
1033 memset(pDst, 0, rightPad * 4);
1038 memset(pDst, 0, bottomPad * dstWidth * 4);
1043 const ULWord inDstBytesPerLine,
1044 const UWord inDstTotalLines)
1046 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 2);
1047 UByte * pLine (pDstBuffer);
1049 for (
UWord lineNum(0); lineNum < inDstTotalLines; lineNum++)
1052 pLine += inDstBytesPerLine;
1059 const ULWord inDstBytesPerLine,
1060 const UWord inDstTotalLines)
1066 NTV2Buffer dstBuffer (pDstBuffer,
ULWord(inDstTotalLines) * inDstBytesPerLine);
1067 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1070 for (
UWord lineNum(1); lineNum < inDstTotalLines; lineNum++)
1071 if (!dstBuffer.
CopyFrom (dstBuffer,
1073 ULWord(lineNum) * inDstBytesPerLine,
1081 const ULWord inDstBytesPerLine,
1082 const UWord inDstTotalLines)
1084 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 2);
1085 UByte * pLine (pDstBuffer);
1087 for (
UWord lineNum(0); lineNum < inDstTotalLines; lineNum++)
1090 pLine += inDstBytesPerLine;
1097 const ULWord inDstBytesPerLine,
1098 const UWord inDstTotalLines)
1104 NTV2Buffer dstBuffer (pDstBuffer,
ULWord(inDstTotalLines) * inDstBytesPerLine);
1105 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1108 for (
UWord lineNum(1); lineNum < inDstTotalLines; lineNum++)
1109 if (!dstBuffer.
CopyFrom (dstBuffer,
1111 ULWord(lineNum) * inDstBytesPerLine,
1120 const ULWord inDstBytesPerLine,
1121 const UWord inDstTotalLines)
1125 if (inDstBytesPerLine == 0)
1127 if (inDstTotalLines == 0)
1130 switch (inPixelFormat)
1180 const ULWord inDstBytesPerLine,
1181 const UWord inDstTotalLines)
1185 if (inDstBytesPerLine == 0)
1187 if (inDstTotalLines == 0)
1190 switch (inPixelFormat)
1240 const UByte * pResult (pInFrameBuffer);
1243 pResult += inBytesPerVertLine *
ULWord(inVertLineOffset);
1244 pResult +=
ULWord(inBytesPerHorzPixel) *
ULWord(inHorzPixelOffset);
1251 UByte * pResult (pInFrameBuffer);
1254 pResult += inBytesPerVertLine *
ULWord(inVertLineOffset);
1255 pResult +=
ULWord(inBytesPerHorzPixel) *
ULWord(inHorzPixelOffset);
1262 const ULWord inDstBytesPerLine,
1263 const UWord inDstTotalLines,
1264 const UWord inDstVertLineOffset,
1265 const UWord inDstHorzPixelOffset,
1266 const UByte * pSrcBuffer,
1267 const ULWord inSrcBytesPerLine,
1268 const UWord inSrcTotalLines,
1269 const UWord inSrcVertLineOffset,
1270 const UWord inSrcVertLinesToCopy,
1271 const UWord inSrcHorzPixelOffset,
1272 const UWord inSrcHorzPixelsToCopy)
1274 if (inDstHorzPixelOffset & 1)
1276 if (inSrcHorzPixelOffset & 1)
1279 const ULWord TWO_BYTES_PER_PIXEL (2);
1280 const ULWord dstMaxPixelWidth (inDstBytesPerLine / TWO_BYTES_PER_PIXEL);
1281 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / TWO_BYTES_PER_PIXEL);
1282 UWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1283 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1285 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1287 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1289 if (
ULWord(inSrcHorzPixelOffset + inSrcHorzPixelsToCopy) > srcMaxPixelWidth)
1290 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1291 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1292 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1293 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1295 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1296 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1301 const UByte * pSrc (::
GetReadAddress_2vuy (pSrcBuffer, inSrcBytesPerLine, inSrcVertLineOffset, inSrcHorzPixelOffset, TWO_BYTES_PER_PIXEL));
1302 UByte * pDst (::
GetWriteAddress_2vuy (pDstBuffer, inDstBytesPerLine, inDstVertLineOffset, inDstHorzPixelOffset, TWO_BYTES_PER_PIXEL));
1304 for (
UWord srcLinesToCopy (numVertLinesToCopy); srcLinesToCopy > 0; srcLinesToCopy--)
1306 UWord dstPixelsCopied (0);
1307 const UByte * pSavedSrc (pSrc);
1308 UByte * pSavedDst (pDst);
1309 for (
UWord hPixelsToCopy (numHorzPixelsToCopy); hPixelsToCopy > 0; hPixelsToCopy--)
1314 if (dstPixelsCopied + inDstHorzPixelOffset >=
UWord(dstMaxPixelWidth))
1316 pDst += TWO_BYTES_PER_PIXEL;
1317 pSrc += TWO_BYTES_PER_PIXEL;
1321 pSrc += inSrcBytesPerLine;
1322 pDst += inDstBytesPerLine;
1331 const ULWord inDstBytesPerLine,
1332 const UWord inDstTotalLines,
1333 const UWord inDstVertLineOffset,
1334 const UWord inDstHorzPixelOffset,
1335 const UByte * pSrcBuffer,
1336 const ULWord inSrcBytesPerLine,
1337 const UWord inSrcTotalLines,
1338 const UWord inSrcVertLineOffset,
1339 const UWord inSrcVertLinesToCopy,
1340 const UWord inSrcHorzPixelOffset,
1341 const UWord inSrcHorzPixelsToCopy)
1343 if (inDstHorzPixelOffset % 6)
1345 if (inSrcHorzPixelOffset % 6)
1347 if (inDstBytesPerLine % 16)
1349 if (inSrcBytesPerLine % 16)
1351 if (inSrcHorzPixelsToCopy % 6)
1354 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 16 * 6);
1355 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 16 * 6);
1356 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1357 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1359 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1361 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1363 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1364 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1365 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1366 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1368 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1369 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1370 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1372 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1373 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1378 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1380 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 16 / 6);
1381 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 16 / 6);
1382 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 16 / 6);
1392 const ULWord inDstBytesPerLine,
1393 const UWord inDstTotalLines,
1394 const UWord inDstVertLineOffset,
1395 const UWord inDstHorzPixelOffset,
1396 const UByte * pSrcBuffer,
1397 const ULWord inSrcBytesPerLine,
1398 const UWord inSrcTotalLines,
1399 const UWord inSrcVertLineOffset,
1400 const UWord inSrcVertLinesToCopy,
1401 const UWord inSrcHorzPixelOffset,
1402 const UWord inSrcHorzPixelsToCopy)
1404 if (inDstHorzPixelOffset % 16)
1406 if (inSrcHorzPixelOffset % 16)
1408 if (inDstBytesPerLine % 20)
1410 if (inSrcBytesPerLine % 20)
1412 if (inSrcHorzPixelsToCopy % 16)
1415 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 20 * 16);
1416 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 20 * 16);
1417 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1418 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1420 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1422 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1424 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1425 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1426 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1427 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1429 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1430 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1431 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1433 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1434 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1439 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1441 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 20 / 16);
1442 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 20 / 16);
1443 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 20 / 16);
1452 const ULWord inDstBytesPerLine,
1453 const UWord inDstTotalLines,
1454 const UWord inDstVertLineOffset,
1455 const UWord inDstHorzPixelOffset,
1456 const UByte * pSrcBuffer,
1457 const ULWord inSrcBytesPerLine,
1458 const UWord inSrcTotalLines,
1459 const UWord inSrcVertLineOffset,
1460 const UWord inSrcVertLinesToCopy,
1461 const UWord inSrcHorzPixelOffset,
1462 const UWord inSrcHorzPixelsToCopy)
1464 if (inDstHorzPixelOffset % 8)
1466 if (inSrcHorzPixelOffset % 8)
1468 if (inDstBytesPerLine % 36)
1470 if (inSrcBytesPerLine % 36)
1472 if (inSrcHorzPixelsToCopy % 8)
1475 const ULWord dstMaxPixelWidth (inDstBytesPerLine / 36 * 8);
1476 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / 36 * 8);
1477 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1478 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1480 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1482 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1484 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1485 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1486 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1487 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1489 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1490 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1491 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1493 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1494 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1499 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1501 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * 36 / 8);
1502 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * 36 / 8);
1503 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * 36 / 8);
1513 const ULWord inDstBytesPerLine,
1514 const UWord inDstTotalLines,
1515 const UWord inDstVertLineOffset,
1516 const UWord inDstHorzPixelOffset,
1517 const UByte * pSrcBuffer,
1518 const ULWord inSrcBytesPerLine,
1519 const UWord inSrcTotalLines,
1520 const UWord inSrcVertLineOffset,
1521 const UWord inSrcVertLinesToCopy,
1522 const UWord inSrcHorzPixelOffset,
1523 const UWord inSrcHorzPixelsToCopy)
1525 const UWord FIVE_BYTES_PER_PIXEL (5);
1527 if (inDstBytesPerLine % FIVE_BYTES_PER_PIXEL)
1529 if (inSrcBytesPerLine % FIVE_BYTES_PER_PIXEL)
1532 const ULWord dstMaxPixelWidth (inDstBytesPerLine / FIVE_BYTES_PER_PIXEL);
1533 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / FIVE_BYTES_PER_PIXEL);
1534 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1535 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1537 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1539 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1541 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1542 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1543 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1544 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1545 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1546 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1547 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1549 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1550 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1555 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1557 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * FIVE_BYTES_PER_PIXEL);
1558 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * FIVE_BYTES_PER_PIXEL);
1559 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * FIVE_BYTES_PER_PIXEL);
1569 const ULWord inDstBytesPerLine,
1570 const UWord inDstTotalLines,
1571 const UWord inDstVertLineOffset,
1572 const UWord inDstHorzPixelOffset,
1573 const UByte * pSrcBuffer,
1574 const ULWord inSrcBytesPerLine,
1575 const UWord inSrcTotalLines,
1576 const UWord inSrcVertLineOffset,
1577 const UWord inSrcVertLinesToCopy,
1578 const UWord inSrcHorzPixelOffset,
1579 const UWord inSrcHorzPixelsToCopy)
1581 const UWord FOUR_BYTES_PER_PIXEL (4);
1583 if (inDstBytesPerLine % FOUR_BYTES_PER_PIXEL)
1585 if (inSrcBytesPerLine % FOUR_BYTES_PER_PIXEL)
1588 const ULWord dstMaxPixelWidth (inDstBytesPerLine / FOUR_BYTES_PER_PIXEL);
1589 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / FOUR_BYTES_PER_PIXEL);
1590 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1591 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1593 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1595 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1597 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1598 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1599 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1600 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1601 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1602 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1603 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1605 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1606 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1611 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1613 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * FOUR_BYTES_PER_PIXEL);
1614 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * FOUR_BYTES_PER_PIXEL);
1615 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * FOUR_BYTES_PER_PIXEL);
1625 const ULWord inDstBytesPerLine,
1626 const UWord inDstTotalLines,
1627 const UWord inDstVertLineOffset,
1628 const UWord inDstHorzPixelOffset,
1629 const UByte * pSrcBuffer,
1630 const ULWord inSrcBytesPerLine,
1631 const UWord inSrcTotalLines,
1632 const UWord inSrcVertLineOffset,
1633 const UWord inSrcVertLinesToCopy,
1634 const UWord inSrcHorzPixelOffset,
1635 const UWord inSrcHorzPixelsToCopy)
1637 const UWord THREE_BYTES_PER_PIXEL (3);
1639 if (inDstBytesPerLine % THREE_BYTES_PER_PIXEL)
1641 if (inSrcBytesPerLine % THREE_BYTES_PER_PIXEL)
1644 const ULWord dstMaxPixelWidth (inDstBytesPerLine / THREE_BYTES_PER_PIXEL);
1645 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / THREE_BYTES_PER_PIXEL);
1646 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1647 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1649 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1651 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1653 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1654 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1655 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1656 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1657 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1658 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1659 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1661 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1662 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1667 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1669 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * THREE_BYTES_PER_PIXEL);
1670 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * THREE_BYTES_PER_PIXEL);
1671 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * THREE_BYTES_PER_PIXEL);
1681 const ULWord inDstBytesPerLine,
1682 const UWord inDstTotalLines,
1683 const UWord inDstVertLineOffset,
1684 const UWord inDstHorzPixelOffset,
1685 const UByte * pSrcBuffer,
1686 const ULWord inSrcBytesPerLine,
1687 const UWord inSrcTotalLines,
1688 const UWord inSrcVertLineOffset,
1689 const UWord inSrcVertLinesToCopy,
1690 const UWord inSrcHorzPixelOffset,
1691 const UWord inSrcHorzPixelsToCopy)
1693 const UWord SIX_BYTES_PER_PIXEL (6);
1695 if (inDstBytesPerLine % SIX_BYTES_PER_PIXEL)
1697 if (inSrcBytesPerLine % SIX_BYTES_PER_PIXEL)
1700 const ULWord dstMaxPixelWidth (inDstBytesPerLine / SIX_BYTES_PER_PIXEL);
1701 const ULWord srcMaxPixelWidth (inSrcBytesPerLine / SIX_BYTES_PER_PIXEL);
1702 ULWord numHorzPixelsToCopy (inSrcHorzPixelsToCopy);
1703 UWord numVertLinesToCopy (inSrcVertLinesToCopy);
1705 if (inDstHorzPixelOffset >= dstMaxPixelWidth)
1707 if (inSrcHorzPixelOffset >= srcMaxPixelWidth)
1709 if (inSrcHorzPixelOffset + inSrcHorzPixelsToCopy >
UWord(srcMaxPixelWidth))
1710 numHorzPixelsToCopy -= inSrcHorzPixelOffset + inSrcHorzPixelsToCopy - srcMaxPixelWidth;
1711 if (inDstHorzPixelOffset + numHorzPixelsToCopy > dstMaxPixelWidth)
1712 numHorzPixelsToCopy = inDstHorzPixelOffset + numHorzPixelsToCopy - dstMaxPixelWidth;
1713 if (inSrcVertLineOffset + inSrcVertLinesToCopy > inSrcTotalLines)
1714 numVertLinesToCopy -= inSrcVertLineOffset + inSrcVertLinesToCopy - inSrcTotalLines;
1715 if (numVertLinesToCopy + inDstVertLineOffset >= inDstTotalLines)
1717 if (numVertLinesToCopy + inDstVertLineOffset > inDstTotalLines)
1718 numVertLinesToCopy -= numVertLinesToCopy + inDstVertLineOffset - inDstTotalLines;
1723 for (
UWord lineNdx (0); lineNdx < numVertLinesToCopy; lineNdx++)
1725 const UByte * pSrcLine (pSrcBuffer + inSrcBytesPerLine * (inSrcVertLineOffset + lineNdx) + inSrcHorzPixelOffset * SIX_BYTES_PER_PIXEL);
1726 UByte * pDstLine (pDstBuffer + inDstBytesPerLine * (inDstVertLineOffset + lineNdx) + inDstHorzPixelOffset * SIX_BYTES_PER_PIXEL);
1727 ::memcpy (pDstLine, pSrcLine, numHorzPixelsToCopy * SIX_BYTES_PER_PIXEL);
1737 const ULWord inDstBytesPerLine,
1738 const UWord inDstTotalLines,
1739 const UWord inDstVertLineOffset,
1740 const UWord inDstHorzPixelOffset,
1741 const UByte * pSrcBuffer,
1742 const ULWord inSrcBytesPerLine,
1743 const UWord inSrcTotalLines,
1744 const UWord inSrcVertLineOffset,
1745 const UWord inSrcVertLinesToCopy,
1746 const UWord inSrcHorzPixelOffset,
1747 const UWord inSrcHorzPixelsToCopy)
1753 if (pDstBuffer == pSrcBuffer)
1755 if (inDstBytesPerLine == 0)
1757 if (inSrcBytesPerLine == 0)
1759 if (inDstTotalLines == 0)
1761 if (inSrcTotalLines == 0)
1763 if (inDstVertLineOffset >= inDstTotalLines)
1765 if (inSrcVertLineOffset >= inSrcTotalLines)
1767 switch (inPixelFormat)
1771 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1772 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1776 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1777 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1785 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1786 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1790 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1791 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1794 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1795 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1798 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1799 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1801 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1802 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1805 pSrcBuffer, inSrcBytesPerLine, inSrcTotalLines, inSrcVertLineOffset, inSrcVertLinesToCopy,
1806 inSrcHorzPixelOffset, inSrcHorzPixelsToCopy);
1835 switch (inFrameRate)
1851 #if !defined(NTV2_DEPRECATE_16_0)
1864 return 30.0 / 1.001;
1870 switch (inFrameRate)
1873 case NTV2_FRAMERATE_11988: outFractionNumerator = 120000; outFractionDenominator = 1001;
break;
1875 case NTV2_FRAMERATE_5994: outFractionNumerator = 60000; outFractionDenominator = 1001;
break;
1878 case NTV2_FRAMERATE_4795: outFractionNumerator = 48000; outFractionDenominator = 1001;
break;
1880 case NTV2_FRAMERATE_2997: outFractionNumerator = 30000; outFractionDenominator = 1001;
break;
1883 case NTV2_FRAMERATE_2398: outFractionNumerator = 24000; outFractionDenominator = 1001;
break;
1885 case NTV2_FRAMERATE_1498: outFractionNumerator = 15000; outFractionDenominator = 1001;
break;
1886 #if !defined(NTV2_DEPRECATE_16_0)
1888 case NTV2_FRAMERATE_1898: outFractionNumerator = 19000; outFractionDenominator = 1001;
break;
1890 case NTV2_FRAMERATE_1798: outFractionNumerator = 18000; outFractionDenominator = 1001;
break;
1891 #endif // !defined(NTV2_DEPRECATE_16_0)
1896 default: outFractionNumerator = 0; outFractionDenominator = 0;
return false;
1905 switch (inScanGeometry)
1922 const UWord inHeightLines,
1923 const UWord inWidthPixels,
1924 const bool inIsInterlaced,
1925 const bool inIsLevelB,
1933 if (inIsPSF == ::
IsPSF(fmt))
1944 switch (inVideoFormat)
2125 return quarterSizedFormat;
2131 switch (inVideoFormat)
2312 return inVideoFormat;
2323 default:
return inGeometry;
2336 default:
return inGeometry;
2352 default:
return inStandard;
2370 default:
return inStandard;
2379 switch (inVideoFormat)
2548 #if defined (_DEBUG)
2602 switch (inVideoFormat)
2634 default: result = inVideoFormat;
break;
2648 switch (inVideoFormat)
2835 #if defined (_DEBUG)
2879 ulSize = ((ulSize / 4096) + 1) * 4096;
2892 ULWord audioSamplesPerFrame(0);
2893 inCadenceFrame %= 5;
2895 if (inIsSMPTE372Enabled)
2899 switch (inFrameRate)
2916 audioSamplesPerFrame = 400;
2919 switch (inCadenceFrame)
2923 case 4: audioSamplesPerFrame = 400;
break;
2926 case 3: audioSamplesPerFrame = 401;
break;
2930 audioSamplesPerFrame = 800;
2933 switch (inCadenceFrame)
2935 case 0: audioSamplesPerFrame = 800;
break;
2940 case 4: audioSamplesPerFrame = 801;
break;
2949 switch (inCadenceFrame)
2953 case 4: audioSamplesPerFrame = 1602;
break;
2956 case 3: audioSamplesPerFrame = 1601;
break;
2965 switch (inCadenceFrame)
2967 case 0: audioSamplesPerFrame = 3204;
break;
2972 case 4: audioSamplesPerFrame = 3203;
break;
2975 #if !defined(NTV2_DEPRECATE_16_0)
2981 case NTV2_FRAMERATE_UNKNOWN:
2983 audioSamplesPerFrame = 0;
2992 audioSamplesPerFrame = 800;
2995 switch (inCadenceFrame)
3000 case 3: audioSamplesPerFrame = 801;
break;
3002 case 4: audioSamplesPerFrame = 800;
break;
3007 switch (inCadenceFrame)
3011 case 4: audioSamplesPerFrame = 1602;
break;
3014 case 3: audioSamplesPerFrame = 1601;
break;
3023 switch (inCadenceFrame)
3025 case 0: audioSamplesPerFrame = 3204;
break;
3030 case 4: audioSamplesPerFrame = 3203;
break;
3039 switch (inCadenceFrame)
3041 case 0: audioSamplesPerFrame = 3204*2;
break;
3046 case 4: audioSamplesPerFrame = 3203*2;
break;
3049 #if !defined(NTV2_DEPRECATE_16_0)
3055 case NTV2_FRAMERATE_UNKNOWN:
3057 audioSamplesPerFrame = 0*2;
3066 audioSamplesPerFrame = 1600;
3069 switch (inCadenceFrame)
3073 case 4: audioSamplesPerFrame = 1602;
break;
3076 case 3: audioSamplesPerFrame = 1601;
break;
3080 audioSamplesPerFrame = 3200;
3083 switch (inCadenceFrame)
3085 case 0: audioSamplesPerFrame = 3204;
break;
3090 case 4: audioSamplesPerFrame = 3203;
break;
3099 switch (inCadenceFrame)
3102 case 1: audioSamplesPerFrame = 6407;
break;
3106 case 4: audioSamplesPerFrame = 6406;
break;
3115 switch (inCadenceFrame)
3120 case 3: audioSamplesPerFrame = 12813;
break;
3122 case 4: audioSamplesPerFrame = 12812;
break;
3125 #if !defined(NTV2_DEPRECATE_16_0)
3131 case NTV2_FRAMERATE_UNKNOWN:
3133 audioSamplesPerFrame = 0*2;
3138 return audioSamplesPerFrame;
3149 LWord64 numAudioSamplesFromWholeGroups;
3151 ULWord numWholeGroupsOfFive;
3152 ULWord numAudioSamplesFromRemainder;
3155 numWholeGroupsOfFive = inFrameNumNonInclusive / 5;
3156 remainder = inFrameNumNonInclusive % 5;
3158 numTotalAudioSamples = 0;
3159 numAudioSamplesFromWholeGroups = 0;
3160 numAudioSamplesFromRemainder = 0;
3164 switch (inFrameRate)
3167 numTotalAudioSamples = 400 * inFrameNumNonInclusive;
3170 numAudioSamplesFromWholeGroups = ((2*401) + (3*400)) * numWholeGroupsOfFive;
3171 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((400 * remainder) + remainder/2);
3172 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3175 numTotalAudioSamples = 800 * inFrameNumNonInclusive;
3179 numAudioSamplesFromWholeGroups = ((1*800) + (4*801)) * numWholeGroupsOfFive;
3180 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((801 * remainder) - 1);
3181 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3184 numTotalAudioSamples = 1920/2 * inFrameNumNonInclusive;
3187 numTotalAudioSamples = 1000 * inFrameNumNonInclusive;
3190 numTotalAudioSamples = 1001 * inFrameNumNonInclusive;
3193 numTotalAudioSamples = 1600 * inFrameNumNonInclusive;
3197 numAudioSamplesFromWholeGroups = ((3*1602) + (2*1601)) * numWholeGroupsOfFive;
3198 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((1602 * remainder) - remainder/2);
3199 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3202 numTotalAudioSamples = 1920 * inFrameNumNonInclusive;
3205 numTotalAudioSamples = 2000 * inFrameNumNonInclusive;
3208 numTotalAudioSamples = 2002 * inFrameNumNonInclusive;
3211 numTotalAudioSamples = 3200 * inFrameNumNonInclusive;
3215 numAudioSamplesFromWholeGroups = ((1*3204) + (4*3203)) * numWholeGroupsOfFive;
3216 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((3203 * remainder) + 1);
3217 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3219 #if !defined(NTV2_DEPRECATE_16_0)
3225 case NTV2_FRAMERATE_UNKNOWN:
3227 numTotalAudioSamples = 0;
3233 switch (inFrameRate)
3236 numTotalAudioSamples = 800 * inFrameNumNonInclusive;
3239 numAudioSamplesFromWholeGroups = ((4*801) + (1*800)) * numWholeGroupsOfFive;
3240 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : (801 * remainder);
3241 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3244 numTotalAudioSamples = (800*2) * inFrameNumNonInclusive;
3247 numAudioSamplesFromWholeGroups = ((3*1602) + (2*1601)) * numWholeGroupsOfFive;
3248 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((1602 * remainder) - remainder/2);
3249 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3252 numTotalAudioSamples = 1920 * inFrameNumNonInclusive;
3255 numTotalAudioSamples = 2000 * inFrameNumNonInclusive;
3258 numTotalAudioSamples = 2002 * inFrameNumNonInclusive;
3261 numTotalAudioSamples = (1600*2) * inFrameNumNonInclusive;
3265 numAudioSamplesFromWholeGroups = ((1*3204) + (4*3203)) * numWholeGroupsOfFive;
3266 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : ((3203 * remainder) + 1);
3267 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3270 numTotalAudioSamples = (1920*2) * inFrameNumNonInclusive;
3273 numTotalAudioSamples = (2000*2) * inFrameNumNonInclusive;
3276 numTotalAudioSamples = (2002*2) * inFrameNumNonInclusive;
3279 numTotalAudioSamples = (3200*2) * inFrameNumNonInclusive;
3283 numAudioSamplesFromWholeGroups = ((1*3204*2) + (4*3203*2)) * numWholeGroupsOfFive;
3284 numAudioSamplesFromRemainder = (remainder == 0) ? 0 : (((3203*2) * remainder) + 2);
3285 numTotalAudioSamples = numAudioSamplesFromWholeGroups + numAudioSamplesFromRemainder;
3287 #if !defined(NTV2_DEPRECATE_16_0)
3293 case NTV2_FRAMERATE_UNKNOWN:
3295 numTotalAudioSamples = 0*2;
3300 return numTotalAudioSamples;
3305 static const ULWord sSamplesPerSecond [] = {48000, 96000, 192000, 0};
3308 return double(sSamplesPerSecond[inAudioRate]);
3322 switch (inSequenceRate)
3329 switch (inCadenceFrame % 2)
3341 switch (inCadenceFrame % 5)
3359 switch (inCadenceFrame % 4)
3373 switch (inCadenceFrame % 5)
3395 switch (inSequenceRate)
3402 switch (inCadenceFrame % 2)
3417 switch (inCadenceFrame % 4)
3438 switch (inSequenceRate)
3456 switch (inFrameRate)
3472 #if !defined(NTV2_DEPRECATE_16_0)
3478 case NTV2_FRAMERATE_UNKNOWN: break;
3497 if (duration == 100)
3517 else if (duration == 0)
3519 result = playFrameRate;
3523 float scaleFloat = scale / duration * float(100.0);
3524 long scaleInt = long(scaleFloat);
3533 switch (playFrameRate)
3543 if (scaleInt <= 1500 + 100)
3545 else if (scaleInt <= 2400 + 50)
3547 else if (scaleInt <= 2500 + 100)
3549 else if (scaleInt <= 3000 + 100)
3551 else if (scaleInt <= 4800 + 100)
3553 else if (scaleInt <= 5000 + 100)
3555 else if (scaleInt <= 6000 + 100)
3567 if (scaleInt <= 1498 + 100)
3569 else if (scaleInt <= 2398 + 100)
3571 else if (scaleInt <= 2997 + 100)
3573 else if (scaleInt <= 4795 + 100)
3575 else if (scaleInt <= 5994 + 100)
3590 if (inDenominator == 100)
3591 switch (inNumerator)
3611 const ULWord denominator(inDenominator == 1 ? inDenominator * 1000ULL : inDenominator);
3612 const ULWord numerator(inDenominator == 1 ? inNumerator * 1000ULL : inNumerator);
3633 switch (videoFormat)
3832 #if defined (_DEBUG)
3858 switch (inFrameGeometry)
3870 return inFrameGeometry;
3894 #if defined (_DEBUG)
3913 switch (inFrameGeometry)
3947 return inFrameGeometry;
3948 #if defined (_DEBUG)
3993 #if defined (_DEBUG)
4045 result.insert(inFG);
4047 #if defined (_DEBUG)
4095 #if defined (_DEBUG)
4148 #if defined (_DEBUG)
4179 if (fr == inFrameRate &&
std == inStandard && fg == geo)
4194 return fd.GetRasterWidth();
4202 return fd.GetRasterWidth();
4225 return firstFieldTop ? smpteFirstActiveLine : smpteSecondActiveLine;
4227 return firstFieldTop ? smpteSecondActiveLine : smpteFirstActiveLine;
4234 inOutStream <<
"INVALID ";
4235 inOutStream <<
"SMPTELineNumber(";
4237 inOutStream <<
"1st=" << smpteFirstActiveLine << (firstFieldTop ?
"(top)" :
"")
4238 <<
", 2nd=" << smpteSecondActiveLine << (firstFieldTop ?
"" :
"(top)")
4241 inOutStream <<
"INVALID)";
4250 oss <<
"F" << (inRasterFieldID == 0 ?
"1" :
"2") <<
" ";
4251 oss <<
"L" << dec << inLineOffset+GetFirstActiveLine(inRasterFieldID);
4260 return "Frame count/range not specified";
4261 const bool hasCount(inStr.find(
'@') != string::npos);
4262 const bool hasRange(inStr.find(
'-') != string::npos);
4264 if (hasCount && hasRange)
4265 return "'@' and '-' cannot both be specified";
4271 strs.push_back(inStr);
4273 return "No frame count/range values parsed";
4274 if (strs.size() > 2)
4275 return "More than 2 frame count/range values parsed";
4276 if (hasCount || hasRange)
4277 if (strs.size() != 2)
4278 return "Expected exactly 2 frame count/range values";
4281 for (
size_t strNdx(0); strNdx < strs.size(); strNdx++)
4282 {
string str(strs.at(strNdx));
4284 return "Expected unsigned decimal integer value";
4285 for (
size_t chNdx(0); chNdx < str.length(); chNdx++)
4286 if (!isdigit(str.at(chNdx)))
4287 return "Non-digit character encountered in '" + str +
"'";
4296 bool isValid(
false);
4298 isValid = setRangeWithCount(numbers[0], numbers[1]);
4300 isValid = setExactRange(numbers[0], numbers[1]);
4302 isValid = setCountOnly(numbers[0]);
4303 return isValid ?
"" :
"First frame past last frame";
4313 else if (isFrameRange())
4316 oss <<
DEC(count()) <<
"@" <<
DEC(firstFrame());
4318 oss <<
DEC(firstFrame()) <<
"-" <<
DEC(lastFrame());
4321 oss <<
DEC(count());
4327 else if (isFrameRange())
4328 oss <<
"Frames " <<
DEC(firstFrame()) <<
"-" <<
DEC(lastFrame()) <<
" (" <<
DEC(lastFrame()-firstFrame()+1) <<
"@" <<
DEC(firstFrame()) <<
")";
4330 oss <<
DEC(count()) <<
" frames (auto-allocated)";
4339 int iNumChans,
bool bKeepAudio24Bits)
4355 UWord * puwOut =
reinterpret_cast<UWord*
>(pSR);
4359 int iNumSamples = iNumBytes / SAMPLE_SIZE;
4360 int iMod = (iNumBytes % SAMPLE_SIZE) / 4;
4378 if (bKeepAudio24Bits)
4380 for (
int s = 0; s < iNumSamples; s++)
4382 for (
int c = iChan0; c < iChan0 + iNumChans; c++)
4392 for (
int s = 0; s < iNumSamples; s++)
4394 for (
int c = iChan0; c < iChan0 + iNumChans; c++)
4396 *puwOut++ =
UWord(pIn[c] >> 16);
4409 #define M_PI (3.14159265358979323846)
4415 ULWord & inOutCurrentSample,
4416 const ULWord inNumSamples,
4417 const double inSampleRate,
4418 const double inAmplitude,
4419 const double inFrequency,
4420 const ULWord inNumBitsPerSample,
4421 const bool inByteSwap,
4422 const ULWord inNumChannels)
4424 outNumBytesWritten = 0;
4425 if (inAudioBuffer.
IsNULL())
4428 const ULWord numBytes (4 * inNumSamples * inNumChannels);
4432 double j (inOutCurrentSample);
4433 const double cycleLength (inSampleRate / inFrequency);
4434 const double scale (
double(
ULWord(1 << (inNumBitsPerSample - 1))) - 1.0);
4435 ULWord * pAudioBuffer(inAudioBuffer);
4438 for (
ULWord i(0); i < inNumSamples; i++)
4440 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4441 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4446 for (
ULWord channel(0); channel < inNumChannels; channel++)
4447 *pAudioBuffer++ =
ULWord(value);
4450 if (j > cycleLength)
4452 inOutCurrentSample++;
4455 outNumBytesWritten = numBytes;
4462 ULWord & inOutCurrentSample,
4463 const ULWord inNumSamples,
4464 const double inSampleRate,
4465 const double inAmplitude,
4466 const double inFrequency,
4468 const bool inByteSwap,
4469 const ULWord inNumChannels)
4471 double j (inOutCurrentSample);
4472 const double cycleLength (inSampleRate / inFrequency);
4473 const double scale (
double (
ULWord (1 << (inNumBits - 1))) - 1.0);
4477 for (
ULWord i = 0; i < inNumSamples; i++)
4479 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4480 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4485 for (
ULWord channel = 0; channel < inNumChannels; channel++)
4486 *pAudioBuffer++ =
ULWord(value);
4489 if (j > cycleLength)
4491 inOutCurrentSample++;
4495 return inNumSamples * 4 * inNumChannels;
4501 ULWord & inOutCurrentSample,
4502 const ULWord inNumSamples,
4503 const double inSampleRate,
4504 const double inAmplitude,
4505 const double inFrequency,
4507 const bool inByteSwap,
4508 const ULWord inNumChannels)
4510 double j (inOutCurrentSample);
4511 const double cycleLength (inSampleRate / inFrequency);
4512 const double scale (
double (
ULWord (1 << (inNumBits - 1))) - 1.0);
4516 for (
ULWord i(0); i < inNumSamples; i++)
4518 const double nextFloat = double(::sin (j / cycleLength * (
M_PI * 2.0)) * inAmplitude);
4519 Word value =
Word((nextFloat * scale) +
double(0.5));
4524 for (
ULWord channel(0); channel < inNumChannels; channel++)
4525 *pAudioBuffer++ =
UWord(value);
4528 if (j > cycleLength)
4530 inOutCurrentSample++;
4534 return inNumSamples * 4 * inNumChannels;
4540 ULWord & inOutCurrentSample,
4541 const ULWord inNumSamples,
4542 const double inSampleRate,
4543 const double * pInAmplitudes,
4544 const double * pInFrequencies,
4546 const bool inByteSwap,
4547 const ULWord inNumChannels)
4551 const double scale (
double(
ULWord (1 << (inNumBits - 1))) - 1.0);
4553 for (
ULWord channel(0); channel < inNumChannels; channel++)
4555 cycleLength[channel] = inSampleRate / pInFrequencies[channel];
4556 j [channel] = inOutCurrentSample;
4559 if (pAudioBuffer && pInAmplitudes && pInFrequencies)
4561 for (
ULWord i(0); i < inNumSamples; i++)
4563 for (
ULWord channel(0); channel < inNumChannels; channel++)
4565 const double nextFloat = double(::sin(j[channel] / cycleLength[channel] * (
M_PI * 2.0)) * pInAmplitudes[channel]);
4566 LWord value =
LWord((nextFloat * scale) +
double(0.5));
4571 *pAudioBuffer++ =
ULWord(value);
4574 if (j[channel] > cycleLength[channel])
4575 j[channel] -= cycleLength[channel];
4578 inOutCurrentSample++;
4582 return inNumSamples * 4 * inNumChannels;
4588 ULWord & inOutCurrentSample,
4589 const ULWord inNumSamples,
4591 const bool inEndianConvert,
4592 const ULWord inNumChannels)
4595 for (
ULWord i(0); i < inNumSamples; i++)
4597 ULWord value ((inOutCurrentSample % inModulus) << 16);
4598 if (inEndianConvert)
4600 for (
ULWord channel(0); channel < inNumChannels; channel++)
4601 *pAudioBuffer++ = value;
4602 inOutCurrentSample++;
4604 return inNumSamples * 4 * inNumChannels;
4681 case DEVICE_ID_TTAP:
return inForRetailDisplay ?
"T-TAP" :
"TTap";
4690 return inForRetailDisplay ?
"Unknown" :
"???";
4707 switch (inCrosspointChannel)
4891 return gInputSourceToEmbeddedAudioInputs [inInputSource];
4917 return gChannelToInputChannelSpec [inChannel];
4928 return gChannelToOutputChannelSpec [inChannel];
5013 return gInputSourceToChannelSpec [inInputSource];
5037 return gInputSourceToReferenceSource [inInputSource];
5061 return gInputSourceToChannel [inInputSource];
5085 return gInputSourceToAudioSystem [inInputSource];
5123 return inEmbeddedLTC ? gInputSourceToLTCIndex [inInputSource] : gInputSourceToTCIndex [inInputSource];
5141 switch (inSourceType)
5160 return gOutputDestToChannel [inOutputDest];
5186 return gChannelToOutputDest [inChannel];
5195 return inTargetFormat;
5205 if (inFormat1 == inFormat2)
5216 default:
return false;
5231 return sSDIInputSources[inIndex0];
5235 return sHDMIInputSources[inIndex0];
5239 return sANLGInputSources[inIndex0];
5273 static const ULWord sInputSourcesIndexes [] = { 0,
5275 0, 1, 2, 3, 4, 5, 6, 7 };
5276 if (
size_t(inValue) <
sizeof(sInputSourcesIndexes) /
sizeof(
ULWord))
5277 return sInputSourcesIndexes [inValue];
5286 static const ULWord gFrameSizeToByteCount[] = { 2 , 4 , 8 , 16 ,
5292 return gFrameSizeToByteCount [inFrameSize] * 1024 * 1024;
5301 static const ULWord gBufferSizeToByteCount[] = { 1 * 1024*1024, 4 * 1024*1024, 2 * 1024*1024, 3 * 1024*1024, 0 };
5303 return gBufferSizeToByteCount[inBufferSize];
5347 if (iter != family.end())
5348 return *(family.begin());
5356 if (inFrameRate1 == inFrameRate2)
5368 return frFamily1 == frFamily2;
5624 switch( conversionMode )
5668 switch( conversionMode )
5708 return outputFormat;
5714 return inOutStream << inFrameDimensions.Width() <<
"Wx" << inFrameDimensions.Height() <<
"H";
5720 return inSmpteLineNumber.
Print (inOutStream);
5746 oss << (inCompactDisplay ?
"AudSys" :
"NTV2_AUDIOSYSTEM_") << (inValue + 1);
5748 oss << (inCompactDisplay ?
"NoAudio" :
"NTV2_AUDIOSYSTEM_INVALID");
5804 std::ostringstream oss;
6147 #if !defined(NTV2_DEPRECATE_16_0)
6151 #if !defined(_DEBUG)
6365 inOutStr <<
"[" << inObj.size () <<
" regs: ";
6369 if (++iter != inObj.end ())
6372 return inOutStr <<
"]";
6378 inOutSet.insert (inRegisterNumber);
6424 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6425 <<
DEC(inValue * 2 + 1) << (inCompactDisplay ?
"-" :
"_") <<
DEC(inValue * 2 + 2);
6426 else if (!inCompactDisplay)
6427 oss <<
"NTV2_AUDIO_CHANNEL_PAIR_INVALID";
6436 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6437 << (inValue * 4 + 1) << (inCompactDisplay ?
"-" :
"_") << (inValue * 4 + 4);
6438 else if (!inCompactDisplay)
6439 oss <<
"NTV2_AUDIO_CHANNEL_QUAD_INVALID";
6448 oss << (inCompactDisplay ?
"" :
"NTV2_AudioChannel")
6449 << (inValue * 8 + 1) << (inCompactDisplay ?
"-" :
"_") << (inValue * 8 + 8);
6450 else if (!inCompactDisplay)
6451 oss <<
"NTV2_AUDIO_CHANNEL_OCTET_INVALID";
6894 default:
return "Unknown";
6966 #if !defined(NTV2_DEPRECATE_17_6)
6970 "FILE 720x480 420 Planar 8 Bit 59.94i",
6971 "FILE 720x480 420 Planar 8 Bit 59.94p",
6972 "FILE 720x480 420 Planar 8 Bit 60i",
6973 "FILE 720x480 420 Planar 8 Bit 60p",
6974 "FILE 720x480 422 Planar 10 Bit 59.94i",
6975 "FILE 720x480 422 Planar 10 Bit 59.94p",
6976 "FILE 720x480 422 Planar 10 Bit 60i",
6977 "FILE 720x480 422 Planar 10 Bit 60p",
6979 "FILE 720x576 420 Planar 8 Bit 50i",
6980 "FILE 720x576 420 Planar 8 Bit 50p",
6981 "FILE 720x576 422 Planar 10 Bit 50i",
6982 "FILE 720x576 422 Planar 10 Bit 50p",
6984 "FILE 1280x720 420 Planar 8 Bit 2398p",
6985 "FILE 1280x720 420 Planar 8 Bit 24p",
6986 "FILE 1280x720 420 Planar 8 Bit 25p",
6987 "FILE 1280x720 420 Planar 8 Bit 29.97p",
6988 "FILE 1280x720 420 Planar 8 Bit 30p",
6989 "FILE 1280x720 420 Planar 8 Bit 50p",
6990 "FILE 1280x720 420 Planar 8 Bit 59.94p",
6991 "FILE 1280x720 420 Planar 8 Bit 60p",
6993 "FILE 1280x720 422 Planar 10 Bit 2398p",
6994 "FILE 1280x720 422 Planar 10 Bit 25p",
6995 "FILE 1280x720 422 Planar 10 Bit 25p",
6996 "FILE 1280x720 422 Planar 10 Bit 29.97p",
6997 "FILE 1280x720 422 Planar 10 Bit 30p",
6998 "FILE 1280x720 422 Planar 10 Bit 50p",
6999 "FILE 1280x720 422 Planar 10 Bit 59.94p",
7000 "FILE 1280x720 422 Planar 10 Bit 60p",
7002 "FILE 1920x1080 420 Planar 8 Bit 2398p",
7003 "FILE 1920x1080 420 Planar 8 Bit 24p",
7004 "FILE 1920x1080 420 Planar 8 Bit 25p",
7005 "FILE 1920x1080 420 Planar 8 Bit 29.97p",
7006 "FILE 1920x1080 420 Planar 8 Bit 30p",
7007 "FILE 1920x1080 420 Planar 8 Bit 50i",
7008 "FILE 1920x1080 420 Planar 8 Bit 50p",
7009 "FILE 1920x1080 420 Planar 8 Bit 59.94i",
7010 "FILE 1920x1080 420 Planar 8 Bit 59.94p",
7011 "FILE 1920x1080 420 Planar 8 Bit 60i",
7012 "FILE 1920x1080 420 Planar 8 Bit 60p",
7014 "FILE 1920x1080 422 Planar 10 Bit 2398p",
7015 "FILE 1920x1080 422 Planar 10 Bit 24p",
7016 "FILE 1920x1080 422 Planar 10 Bit 25p",
7017 "FILE 1920x1080 422 Planar 10 Bit 29.97p",
7018 "FILE 1920x1080 422 Planar 10 Bit 30p",
7019 "FILE 1920x1080 422 Planar 10 Bit 50i",
7020 "FILE 1920x1080 422 Planar 10 Bit 50p",
7021 "FILE 1920x1080 422 Planar 10 Bit 59.94i",
7022 "FILE 1920x1080 422 Planar 10 Bit 59.94p",
7023 "FILE 1920x1080 422 Planar 10 Bit 60i",
7024 "FILE 1920x1080 422 Planar 10 Bit 60p",
7026 "FILE 2048x1080 420 Planar 8 Bit 2398p",
7027 "FILE 2048x1080 420 Planar 8 Bit 24p",
7028 "FILE 2048x1080 420 Planar 8 Bit 25p",
7029 "FILE 2048x1080 420 Planar 8 Bit 29.97p",
7030 "FILE 2048x1080 420 Planar 8 Bit 30p",
7031 "FILE 2048x1080 420 Planar 8 Bit 50p",
7032 "FILE 2048x1080 420 Planar 8 Bit 59.94p",
7033 "FILE 2048x1080 420 Planar 8 Bit 60p",
7035 "FILE 2048x1080 422 Planar 10 Bit 2398p",
7036 "FILE 2048x1080 422 Planar 10 Bit 24p",
7037 "FILE 2048x1080 422 Planar 10 Bit 25p",
7038 "FILE 2048x1080 422 Planar 10 Bit 29.97p",
7039 "FILE 2048x1080 422 Planar 10 Bit 30p",
7040 "FILE 2048x1080 422 Planar 10 Bit 50p",
7041 "FILE 2048x1080 422 Planar 10 Bit 59.94p",
7042 "FILE 2048x1080 422 Planar 10 Bit 60p",
7044 "FILE 3840x2160 420 Planar 8 Bit 2398p",
7045 "FILE 3840x2160 420 Planar 8 Bit 24p",
7046 "FILE 3840x2160 420 Planar 8 Bit 25p",
7047 "FILE 3840x2160 420 Planar 8 Bit 29.97p",
7048 "FILE 3840x2160 420 Planar 8 Bit 30p",
7049 "FILE 3840x2160 420 Planar 8 Bit 50p",
7050 "FILE 3840x2160 420 Planar 8 Bit 59.94p",
7051 "FILE 3840x2160 420 Planar 8 Bit 60p",
7053 "FILE 3840x2160 420 Planar 10 Bit 50p",
7054 "FILE 3840x2160 420 Planar 10 Bit 59.94p",
7055 "FILE 3840x2160 420 Planar 10 Bit 60p",
7057 "FILE 3840x2160 422 Planar 8 Bit 2398p",
7058 "FILE 3840x2160 422 Planar 8 Bit 24p",
7059 "FILE 3840x2160 422 Planar 8 Bit 25p",
7060 "FILE 3840x2160 422 Planar 8 Bit 29.97p",
7061 "FILE 3840x2160 422 Planar 8 Bit 30p",
7062 "FILE 3840x2160 422 Planar 8 Bit 50p",
7063 "FILE 3840x2160 422 Planar 8 Bit 59.94p",
7064 "FILE 3840x2160 422 Planar 8 Bit 60p",
7066 "FILE 3840x2160 422 Planar 10 Bit 2398p",
7067 "FILE 3840x2160 422 Planar 10 Bit 24p",
7068 "FILE 3840x2160 422 Planar 10 Bit 25p",
7069 "FILE 3840x2160 422 Planar 10 Bit 29.97p",
7070 "FILE 3840x2160 422 Planar 10 Bit 30p",
7071 "FILE 3840x2160 422 Planar 10 Bit 50p",
7072 "FILE 3840x2160 422 Planar 10 Bit 59.94p",
7073 "FILE 3840x2160 422 Planar 10 Bit 60p",
7075 "FILE 4096x2160 420 Planar 10 Bit 5994p",
7076 "FILE 4096x2160 420 Planar 10 Bit 60p",
7077 "FILE 4096x2160 422 Planar 10 Bit 50p",
7078 "FILE 4096x2160 422 Planar 10 Bit 5994p IOnly",
7079 "FILE 4096x2160 422 Planar 10 Bit 60p IOnly",
7081 "VIF 720x480 420 Planar 8 Bit 59.94i",
7082 "VIF 720x480 420 Planar 8 Bit 59.94p",
7083 "VIF 720x480 420 Planar 8 Bit 60i",
7084 "VIF 720x480 420 Planar 8 Bit 60p",
7085 "VIF 720x480 422 Planar 10 Bit 59.94i",
7086 "VIF 720x480 422 Planar 10 Bit 59.94p",
7087 "VIF 720x480 422 Planar 10 Bit 60i",
7088 "VIF 720x480 422 Planar 10 Bit 60p",
7090 "VIF 720x576 420 Planar 8 Bit 50i",
7091 "VIF 720x576 420 Planar 8 Bit 50p",
7092 "VIF 720x576 422 Planar 10 Bit 50i",
7093 "VIF 720x576 422 Planar 10 Bit 50p",
7095 "VIF 1280x720 420 Planar 8 Bit 50p",
7096 "VIF 1280x720 420 Planar 8 Bit 59.94p",
7097 "VIF 1280x720 420 Planar 8 Bit 60p",
7098 "VIF 1280x720 422 Planar 10 Bit 50p",
7099 "VIF 1280x720 422 Planar 10 Bit 59.94p",
7100 "VIF 1280x720 422 Planar 10 Bit 60p",
7102 "VIF 1920x1080 420 Planar 8 Bit 50i",
7103 "VIF 1920x1080 420 Planar 8 Bit 50p",
7104 "VIF 1920x1080 420 Planar 8 Bit 59.94i",
7105 "VIF 1920x1080 420 Planar 8 Bit 59.94p",
7106 "VIF 1920x1080 420 Planar 8 Bit 60i",
7107 "VIF 1920x1080 420 Planar 8 Bit 60p",
7108 "VIF 1920x1080 420 Planar 10 Bit 50i",
7109 "VIF 1920x1080 420 Planar 10 Bit 50p",
7110 "VIF 1920x1080 420 Planar 10 Bit 59.94i",
7111 "VIF 1920x1080 420 Planar 10 Bit 59.94p",
7112 "VIF 1920x1080 420 Planar 10 Bit 60i",
7113 "VIF 1920x1080 420 Planar 10 Bit 60p",
7114 "VIF 1920x1080 422 Planar 10 Bit 59.94i",
7115 "VIF 1920x1080 422 Planar 10 Bit 59.94p",
7116 "VIF 1920x1080 422 Planar 10 Bit 60i",
7117 "VIF 1920x1080 422 Planar 10 Bit 60p",
7119 "VIF 3840x2160 420 Planar 8 Bit 30p",
7120 "VIF 3840x2160 420 Planar 8 Bit 50p",
7121 "VIF 3840x2160 420 Planar 8 Bit 59.94p",
7122 "VIF 3840x2160 420 Planar 8 Bit 60p",
7123 "VIF 3840x2160 420 Planar 10 Bit 50p",
7124 "VIF 3840x2160 420 Planar 10 Bit 59.94p",
7125 "VIF 3840x2160 420 Planar 10 Bit 60p",
7127 "VIF 3840x2160 422 Planar 10 Bit 30p",
7128 "VIF 3840x2160 422 Planar 10 Bit 50p",
7129 "VIF 3840x2160 422 Planar 10 Bit 59.94p",
7130 "VIF 3840x2160 422 Planar 10 Bit 60p",
7135 if (inForRetailDisplay)
7354 #if !defined(NTV2_DEPRECATE_16_0)
7360 case NTV2_NUM_FRAMERATES: return ""; //special case
7453 switch(inInterruptEnumValue)
7503 switch (inIpErrorEnumValue)
7543 default:
return "Unknown IP error";
7549 return inOutStream <<
"DBB=0x" << hex << setw (8) << setfill (
'0') << inObj.
DBB
7550 <<
"|HI=0x" << hex << setw (8) << setfill (
'0') << inObj.
High
7551 <<
"|LO=0x" << hex << setw (8) << setfill (
'0') << inObj.
Low
7636 if (inBitfileName == deviceBitfileName)
7659 typedef map<string, NTV2DeviceID> BitfileName2DevID;
7660 typedef BitfileName2DevID::const_iterator BitfileName2DevCI;
7661 static BitfileName2DevID sBitfileName2DevID;
7662 static AJALock sBFN2DevIDMutex;
7664 if (sBitfileName2DevID.empty())
7670 if (!bitFileName.empty())
7671 sBitfileName2DevID[bitFileName] = *it;
7674 BitfileName2DevCI it(sBitfileName2DevID.find(inBitfileName));
7684 const char c (fwPath.empty() ? 0 : fwPath.at(fwPath.length()-1));
7685 if (!inAddTrailingPathDelim)
7686 if (c ==
'/' || c ==
'\\')
7687 fwPath.erase(fwPath.length()-1, 1);
7696 const char c (fwPath.empty() ? 0 : fwPath.at(fwPath.length()-1));
7697 if (!inAddTrailingPathDelim)
7698 if (c ==
'/' || c ==
'\\')
7699 fwPath.erase(fwPath.length()-1, 1);
7708 const char c (fwPath.empty() ? 0 : fwPath.at(fwPath.length()-1));
7709 if (!inAddTrailingPathDelim)
7710 if (c ==
'/' || c ==
'\\')
7711 fwPath.erase(fwPath.length()-1, 1);
7798 for (
unsigned ndx(0); ndx <
sizeof(sValidDeviceIDs) /
sizeof(
NTV2DeviceID); ndx++)
7803 bool insertIt (
false);
7831 result.insert (deviceID);
7865 switch (inVersionComponent)
7985 return "(bad bitfile type)";
7990 static const NTV2StringList sScalesUTF8 = {
"\xE2\x84\x83",
"\xE2\x84\x89",
"\xC2\xB0""K",
"\xC2\xB0""R"};
7992 if (
size_t(inValue) < sScales.size())
7993 return inUseUTF8 ? sScalesUTF8.at(inValue) : sScales.at(inValue);
7997 #if !defined(NTV2_DEPRECATE_17_6)
8000 return inFloatValues.
toRegValues(outRegisterValues);
8017 #endif // !defined(NTV2_DEPRECATE_17_6)
8027 if (it != inList.end())
8055 if (++it != inData.end())
8056 inOutStream <<
", ";
8066 if (++it != inData.end())
8067 inOutStream <<
", ";
8085 result.insert (it->registerNumber);
8091 outGone.clear(); outSame.clear(); outNew.clear();
8092 set_difference (inBefore.begin(), inBefore.end(), inAfter.begin(), inAfter.end(), std::inserter(outGone, outGone.begin()));
8093 set_difference (inAfter.begin(), inAfter.end(), inBefore.begin(), inBefore.end(), std::inserter(outNew, outNew.begin()));
8094 set_intersection (inBefore.begin(), inBefore.end(), inAfter.begin(), inAfter.end(), std::inserter(outSame, outSame.begin()));
8101 if (&inBefore == &inAfter)
8103 if (inBefore.size() != inAfter.size())
8106 set_intersection (before.begin(), before.end(), after.begin(), after.end(),
8107 std::inserter(commonRegNums, commonRegNums.begin()));
8112 if (beforeIt != inBefore.end() && afterIt != inAfter.end() && beforeIt->registerValue != afterIt->registerValue)
8113 outChanged.insert(*it);
8116 else if (inBefore.at(0).registerNumber == inAfter.at(0).registerNumber
8117 && inBefore.at(inBefore.size()-1).registerNumber == inAfter.at(inAfter.size()-1).registerNumber)
8119 for (
size_t ndx(0); ndx < inBefore.size(); ndx++)
8120 if (inBefore[ndx].registerValue != inAfter[ndx].registerValue)
8121 outChanged.insert(inBefore[ndx].registerNumber);
8123 else for (
size_t ndx(0); ndx < inBefore.size(); ndx++)
8135 if (it != inAfter.end())
8140 return !outChanged.empty();
8145 { ostringstream oss;
8146 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
8148 const char chr(inStr.at(
size_t(ndx)));
8149 if (::isalnum(chr) || chr ==
'-' || chr ==
'_' || chr ==
'.' || chr ==
'~')
8152 oss <<
"%" <<
HEX0N(
unsigned(chr),2);
8158 { ostringstream oss;
8159 unsigned hexNum(0), state(0);
8160 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
8162 const char chr(inStr.at(
size_t(ndx)));
8166 if (::isalnum(chr) || chr ==
'-' || chr ==
'_' || chr ==
'.' || chr ==
'~')
8172 if (chr >=
'A' && chr <=
'F')
8173 hexNum = unsigned(chr + 10 -
'A') << 4;
8174 else if (chr >=
'a' && chr <=
'f')
8175 hexNum = unsigned(chr + 10 -
'a') << 4;
8176 else if (chr >=
'0' && chr <=
'9')
8177 hexNum = unsigned(chr -
'0') << 4;
8183 if (chr >=
'A' && chr <=
'F')
8184 hexNum += unsigned(chr + 10 -
'A');
8185 else if (chr >=
'a' && chr <=
'f')
8186 hexNum += unsigned(chr + 10 -
'a');
8187 else if (chr >=
'0' && chr <=
'9')
8188 hexNum += unsigned(chr -
'0');
8189 oss << char(hexNum);
8202 if (inSerNumStr.length() < 8 || inSerNumStr.length() > 9)
8204 string serNumStr(inSerNumStr);
8205 if (inSerNumStr.length() == 9)
8206 serNumStr.erase(0,1);
8208 for (
size_t ndx(0); ndx < serNumStr.length(); ndx++)
8210 const char ch (serNumStr.at(ndx));
8212 if ( ! ( ( (ch >=
'0') && (ch <=
'9') ) ||
8213 ( (ch >=
'A') && (ch <=
'Z') ) ||
8214 ( (ch >=
'a') && (ch <=
'z') ) ||
8215 (ch ==
' ') || (ch ==
'-') ) )
8217 serNum |= uint64_t(ch) << (ndx*8);
8225 const ULWord serialNumHigh (inSerNum >> 32);
8226 const ULWord serialNumLow (inSerNum & 0x00000000FFFFFFFF);
8229 serialNum[0] = char((serialNumLow & 0x000000FF) );
8230 serialNum[1] = char((serialNumLow & 0x0000FF00) >> 8);
8231 serialNum[2] = char((serialNumLow & 0x00FF0000) >> 16);
8232 serialNum[3] = char((serialNumLow & 0xFF000000) >> 24);
8233 serialNum[4] = char((serialNumHigh & 0x000000FF) );
8234 serialNum[5] = char((serialNumHigh & 0x0000FF00) >> 8);
8235 serialNum[6] = char((serialNumHigh & 0x00FF0000) >> 16);
8236 serialNum[7] = char((serialNumHigh & 0xFF000000) >> 24);
8237 serialNum[8] =
'\0';
8239 for (
unsigned ndx(0); ndx < 8; ndx++)
8241 if (serialNum[ndx] == 0)
8249 if ( ! ( ( (serialNum[ndx] >=
'0') && (serialNum[ndx] <=
'9') ) ||
8250 ( (serialNum[ndx] >=
'A') && (serialNum[ndx] <=
'Z') ) ||
8251 ( (serialNum[ndx] >=
'a') && (serialNum[ndx] <=
'z') ) ||
8252 (serialNum[ndx] ==
' ') || (serialNum[ndx] ==
'-') ) )
8258 #if defined (AJAMac)
8268 outMaj = outMin = outPt = outBld = outType = 0;
8275 const string key(
"<key>CFBundleShortVersionString</key>");
8276 for (
string line; std::getline(ifs, line); )
8278 size_t keyPos(line.find(key));
8279 if (keyPos == string::npos)
8281 if (!std::getline(ifs, line))
8284 size_t startPos(line.find(
"<string>")), endPos(line.find(
"</string>"));
8285 if (startPos == string::npos || endPos == string::npos)
8288 if (endPos < startPos)
8290 string versStr(line.substr(startPos, endPos-startPos));
8293 if (versComps.size() < 3 || versComps.size() > 4)
8295 const string sBuildTypes(
"_bad");
8296 for (
size_t bt(1); bt < 4; bt++)
8297 if (versComps.at(2).find(sBuildTypes[bt]) != string::npos)
8299 aja::split(versComps.at(2), sBuildTypes[bt], lastComps);
8300 versComps.erase(versComps.begin()+2);
8301 versComps.push_back(lastComps.at(0));
8303 outType =
UWord(bt);
8306 for (
size_t ndx(0); ndx < versComps.size(); ndx++)
8308 if (versComps.at(ndx).empty())
8317 else if (ndx == 3 && outType == 0)
@ NTV2_XptFrameBuffer6YUV
@ NTV2_1080i_5000to1080psf_2500
@ AJA_SystemInfoSection_Path
@ 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
bool setFromRegValues(const HDRRegValues &inRegValues)
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
bool UnpackLine_10BitARGBtoUWordSequence(const void *pIn10BitARGBLine, const NTV2FormatDescriptor &inFormatDesc, UWordSequence &out16BitARGBLine)
Unpacks a line of NTV2_FBF_10BIT_ARGB video into 16-bit-per-component ARGB data.
@ NTV2_XptMixer3FGVidInput
@ NTV2_FORMAT_4x1920x1080p_6000
@ 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.
@ NTV2WidgetType_DualLinkV1In
@ NTV2_FBF_10BIT_YCBCR_420PL2
10-Bit 4:2:0 2-Plane YCbCr
Declares the AJASystemInfo class.
@ 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)
@ 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
NTV2TaskMode
Describes the task mode state. See also: Sharing AJA Devices With Other Applications.
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).
@ AJA_SystemInfoMemoryUnit_Megabytes
@ 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
@ AJA_SystemInfoTag_Path_NTV2VirtualDevices
@ NTV2_XptMixer2FGKeyInput
@ NTV2_1080i_2500to625_2500
@ NTV2_FORMAT_4096x2160p_11988
@ NTV2_XptSDIOut3InputDS2
HDRRegValues & setDCIP3(void)
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_)
@ AJA_SystemInfoTag_Path_Firmware
@ 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
void ConvertLineto10BitRGB(UWord *ycbcrBuffer, RGBAlpha10BitPixel *rgbaBuffer, ULWord numPixels, bool fUseSDMatrix, bool fUseSMPTERange=false, bool fAlphaFromLuma=false)
@ 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.
@ NTV2_IOKINDS_NONE
Doesn't specify any kind of input/output.
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
@ AJA_SystemInfoTag_Path_NTV2Plugins
#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)
string NTV2GetPluginsFolderPath(const bool inAddTrailingPathDelim)
@ 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_)
@ NTV2CROSSPOINT_CHANNEL7
@ NTV2_XptFrameBuffer7DS2Input
string NTV2IsoConvertModeToString(const NTV2IsoConvertMode inValue, const bool inCompact)
@ 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...
@ 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.
@ 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)
defined(NTV2_DEPRECATE_17_6)
@ 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_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_STANDARD_TASKS
1: Standard/Retail: device configured by AJA ControlPanel, service/daemon, and driver.
@ 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
virtual AJAStatus GetValue(const AJASystemInfoTag inTag, std::string &outValue) const
Answers with the host system info value string for the given AJASystemInfoTag.
@ DEVICE_ID_KONA3G
See KONA 3G (UFC Mode).
string NTV2GetVDevFolderPath(const bool inAddTrailingPathDelim)
@ 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.
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.
@ 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
@ 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
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)
void PackRGB10BitFor10BitARGBPacked(RGBAlpha10BitPixel *pBuffer, const ULWord inNumPixels)
@ 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 KONA IP25.
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)
@ NTV2_DISABLE_TASKS
0: Disabled (never recommended): device configured exclusively by client application(s).
@ 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_IOKINDS_SDI
Specifies SDI input/output kinds.
@ NTV2_Xpt4KDownConverterOutRGB
@ NTV2_BITFILE_KONALHE_PLUS
void MaskYCbCrLine(UWord *ycbcrLine, UWord signalMask, ULWord numPixels)
string NTV2TCIndexToString(const NTV2TCIndex inValue, const bool inCompactDisplay)
@ 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)
@ 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__)
@ NTV2WidgetType_HDMIOutV6
@ 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.
@ 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').
@ 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
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)
@ NTV2_IOKINDS_HDMI
Specifies HDMI input/output kinds.
@ 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)
@ 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)
string NTV2DieTempScaleToString(const NTV2DieTempScale inValue, const bool inUseUTF8)
@ 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
@ NTV2_IOKINDS_ALL
Specifies any/all input/output kinds.
#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.
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)
string NTV2TaskModeToString(const NTV2TaskMode inValue, const bool inCompactDisplay)
@ 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
#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__)
HDRRegValues & setBT2020(void)
@ 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.
defined(NTV2_DEPRECATE_17_6)
enum _NTV2ScanMethod NTV2ScanMethod
Identifies a particular scan method.
@ NTV2_TCINDEX_LTC1
Analog LTC 1.
bool toRegValues(HDRRegValues &outVals) const
#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.
@ 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
@ 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.
@ NTV2_FBF_ABGR
See 8-Bit ARGB, RGBA, ABGR Formats.
string NTV2GetFirmwareFolderPath(const bool inAddTrailingPathDelim)
@ 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_IOKINDS_ANALOG
Specifies analog input/output kinds.
@ 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
UWord NTV2GetSDKVersionComponent(const int inVersionComponent)
Returns an SDK version component value.
@ NTV2_XptDualLinkIn1DSInput
@ NTV2_BITFILE_SOJI_OE6_MAIN
@ NTV2_BITFILE_CORVID44_PLNR_MAIN
static bool CopyRaster5BytesPerPixel(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_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_OEM_TASKS
2: OEM (recommended): device configured by client application(s) with some driver involvement.
@ 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.