AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
videoutilities.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_VIDEOUTILS_H
9 #define AJA_VIDEOUTILS_H
10 
11 #include "public.h"
12 #include "videotypes.h"
13 
14 #define DEFAULT_PATT_GAIN 0.9 // some patterns pay attention to this...
15 #define HD_NUMCOMPONENTPIXELS_2K 2048
16 #define HD_NUMCOMPONENTPIXELS_1080_2K 2048
17 #define HD_NUMCOMPONENTPIXELS_1080 1920
18 #define CCIR601_10BIT_BLACK 64
19 #define CCIR601_10BIT_WHITE 940
20 #define CCIR601_10BIT_CHROMAOFFSET 512
21 
22 #define CCIR601_8BIT_BLACK 16
23 #define CCIR601_8BIT_WHITE 235
24 #define CCIR601_8BIT_CHROMAOFFSET 128
25 
26 #define MIN_RGB_8BIT 0
27 #define MAX_RGB_8BIT 255
28 #define MIN_RGB_10BIT 0
29 #define MAX_RGB_10BIT 1023
30 #define MIN_RGB_16BIT 0
31 #define MAX_RGB_16BIT 65535
32 
33 // line pitch is in bytes.
34 #define FRAME_0_BASE (0x0)
35 #define FRAME_1080_10BIT_LINEPITCH (1280*4)
36 #define FRAME_1080_8BIT_LINEPITCH (1920*2)
37 #define FRAME_QUADHD_10BIT_SIZE (FRAME_1080_10BIT_LINEPITCH*2160)
38 #define FRAME_QUADHD_8BIT_SIZE (FRAME_1080_8BIT_LINEPITCH*2160)
39 #define FRAME_BASE(__frameNum__,__frameSize__) ((__frameNum__)*(__frameSize__))
40 
41 // NOTE: Changed the "(__x__) < MIN_RGB_nBIT" comparisons to "(__x__) <= MIN_RGB_nBIT"
42 // in the following three macros to eliminate gcc "comparison always true" warnings
43 // when __x__ is an unsigned value.
44 #if !defined(ClipRGB_8BIT)
45  #define ClipRGB_8BIT(__x__) ((__x__) > MAX_RGB_8BIT ? (MAX_RGB_8BIT) \
46  : ((__x__) <= MIN_RGB_8BIT ? (MIN_RGB_8BIT) \
47  : (__x__)))
48 #endif
49 #if !defined(ClipRGB_10BIT)
50  #define ClipRGB_10BIT(__x__) ((__x__) > MAX_RGB_10BIT ? (MAX_RGB_10BIT) \
51  : ((__x__) <= MIN_RGB_10BIT ? (MIN_RGB_10BIT) \
52  : (__x__)))
53 #endif
54 
55 #define MIN_YCBCR_10BIT 4
56 #define MAX_YCBCR_10BIT 1019
57 #define ClipYCbCr_10BIT(X) ((X) > MAX_YCBCR_10BIT ? (MAX_YCBCR_10BIT) : ((X) < MIN_YCBCR_10BIT ? (MIN_YCBCR_10BIT) : (X)))
58 
59 
60 typedef enum {
61  AJA_SIGNALMASK_NONE=0, // Output Black.
62  AJA_SIGNALMASK_Y=1 , // Output Y if set, else Output Y=0x40
63  AJA_SIGNALMASK_Cb=2 , // Output Cb if set, elso Output Cb to 0x200
64  AJA_SIGNALMASK_Cr=4 , // Output Cr if set, elso Output Cr to 0x200
65  AJA_SIGNALMASK_ALL=1+2+4 // Output Cr if set, elso Output Cr to 0x200
67 
68 typedef struct {
69  uint8_t Blue;
70  uint8_t Green;
71  uint8_t Red;
72  uint8_t Alpha;
74 
75 typedef struct {
76  uint8_t Alpha;
77  uint8_t Red;
78  uint8_t Green;
79  uint8_t Blue;
81 
82 typedef struct {
83  uint16_t Blue;
84  uint16_t Green;
85  uint16_t Red;
86  uint16_t Alpha;
88 
89 typedef struct {
90  uint16_t Blue;
91  uint16_t Green;
92  uint16_t Red;
93  uint16_t Alpha;
95 
96 typedef struct
97 {
98  uint16_t Alpha;
99  uint16_t cb;
100  uint16_t y;
101  uint16_t cr;
103 
104 typedef struct
105 {
106  uint16_t cb;
107  uint16_t y;
108  uint16_t cr;
110 
111 void AJA_EXPORT createVideoFrame( uint32_t *buffer , uint64_t frameNumber, AJA_PixelFormat pixFmt, uint32_t lines, uint32_t pixels, uint32_t linepitch, uint16_t y, uint16_t cb, uint16_t cr );
112 uint32_t AJA_EXPORT AJA_CalcRowBytesForFormat(AJA_PixelFormat format, uint32_t width);
113 void AJA_EXPORT AJA_UnPack10BitYCbCrBuffer(uint32_t* packedBuffer, uint16_t* ycbcrBuffer, uint32_t numPixels);
114 void AJA_EXPORT AJA_PackTo10BitYCbCrBuffer(uint16_t *ycbcrBuffer, uint32_t *packedBuffer,uint32_t numPixels);
115 void AJA_EXPORT AJA_PackTo10BitYCbCrDPXBuffer( uint16_t *ycbcrBuffer, uint32_t *packedBuffer,uint32_t numPixels ,bool bigEndian = true);
116 void AJA_EXPORT AJA_PackRGB10BitFor10BitRGB(AJA_RGBAlpha10BitPixel* rgba10BitBuffer,uint32_t numPixels);
117 void AJA_EXPORT AJA_PackRGB10BitFor10BitRGBPacked(AJA_RGBAlpha10BitPixel* rgba10BitBuffer,uint32_t numPixels);
118 void AJA_EXPORT AJA_PackRGB10BitFor10BitDPX(AJA_RGBAlpha10BitPixel* rgba10BitBuffer,uint32_t numPixels, bool bigEndian=true);
119 void AJA_EXPORT AJA_UnPack10BitDPXtoRGBAlpha10BitPixel(AJA_RGBAlpha10BitPixel* rgba10BitBuffer,uint32_t* DPXLinebuffer ,uint32_t numPixels, bool bigEndian=true);
120 void AJA_EXPORT AJA_UnPack10BitDPXtoRGBAlphaBitPixel(uint8_t* rgbaBuffer,uint32_t* DPXLinebuffer ,uint32_t numPixels, bool bigEndian=true);
121 void AJA_EXPORT AJA_RePackLineDataForYCbCrDPX(uint32_t *packedycbcrLine, uint32_t numULWords);
122 void AJA_EXPORT AJA_MakeUnPacked8BitYCbCrBuffer( uint8_t* buffer, uint8_t Y , uint8_t Cb , uint8_t Cr,uint32_t numPixels );
123 void AJA_EXPORT AJA_MakeUnPacked10BitYCbCrBuffer(uint16_t* buffer, uint16_t Y , uint16_t Cb , uint16_t Cr,uint32_t numPixels);
124 void AJA_EXPORT AJA_ConvertLineto8BitYCbCr(uint16_t * ycbcr10BitBuffer, uint8_t * ycbcr8BitBuffer, uint32_t numPixels);
125 void AJA_EXPORT AJA_ConvertLineToYCbCr422(AJA_RGBAlphaPixel * RGBLine, uint16_t* YCbCrLine, int32_t numPixels , int32_t startPixel, bool fUseSDMatrix);
126 void AJA_EXPORT AJA_ConvertLineto10BitRGB(uint16_t * ycbcrBuffer, AJA_RGBAlpha10BitPixel * rgbaBuffer,uint32_t numPixels,bool fUseSDMatrix);
127 void AJA_EXPORT AJA_ConvertLinetoRGB(uint8_t * ycbcrBuffer, AJA_RGBAlphaPixel * rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix);
128 void AJA_EXPORT AJA_ConvertLinetoRGB(uint16_t * ycbcrBuffer, AJA_RGBAlphaPixel * rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix);
129 void AJA_EXPORT AJA_ConvertLineto16BitRGB(uint16_t * ycbcrBuffer, AJA_RGBAlpha16BitPixel * rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix);
130 void AJA_EXPORT AJA_Convert16BitRGBtoBayer10BitDPXLJ(AJA_RGBAlpha16BitPixel * rgbaBuffer, uint32_t * bayerBuffer,
131  uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase = AJA_BayerColorPhase_RedGreen);
132 void AJA_EXPORT AJA_Convert16BitRGBtoBayer12BitDPXLJ(AJA_RGBAlpha16BitPixel * rgbaBuffer, uint32_t * bayerBuffer,
133  uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase = AJA_BayerColorPhase_RedGreen);
134 void AJA_EXPORT AJA_Convert16BitRGBtoBayer10BitDPXPacked(AJA_RGBAlpha16BitPixel * rgbaBuffer, uint8_t * bayerBuffer,
135  uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase = AJA_BayerColorPhase_RedGreen);
136 void AJA_EXPORT AJA_Convert16BitRGBtoBayer12BitDPXPacked(AJA_RGBAlpha16BitPixel * rgbaBuffer, uint8_t * bayerBuffer,
137  uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase = AJA_BayerColorPhase_RedGreen);
138 void AJA_EXPORT AJA_ConvertARGBToRGBA(uint8_t* rgbaBuffer,uint32_t numPixels);
139 void AJA_EXPORT AJA_ConvertARGBToABGR(uint8_t* rgbaBuffer,uint32_t numPixels);
140 void AJA_EXPORT AJA_ConvertARGBToRGB(uint8_t* rgbaBuffer,uint32_t numPixels);
141 void AJA_EXPORT AJA_ConvertARGBToBGR(uint8_t* rgbaBuffer,uint32_t numPixels);
142 void AJA_EXPORT AJA_Convert16BitARGBTo16BitRGB(AJA_RGBAlpha16BitPixel *rgbaLineBuffer ,uint16_t * rgbLineBuffer,uint32_t numPixels);
143 void AJA_EXPORT AJA_Convert16BitARGBTo12BitRGBPacked(AJA_RGBAlpha16BitPixel *rgbaLineBuffer ,uint8_t * rgbLineBuffer,uint32_t numPixels);
144 void AJA_EXPORT AJA_Convert8BitYCbCrToYUY2(uint8_t * ycbcrBuffer, uint32_t numPixels);
145 void AJA_EXPORT AJA_ConvertUnpacked10BitYCbCrToPixelFormat(uint16_t *unPackedBuffer, uint32_t *packedBuffer, uint32_t numPixels, AJA_PixelFormat pixelFormat);
146 void AJA_EXPORT AJA_ConvertPixelFormatToRGBA(uint32_t *buffer, AJA_RGBAlphaPixel* rgbBuffer, uint32_t numPixels, AJA_PixelFormat pixelFormat,bool bIsSD = false);
147 void AJA_EXPORT AJA_MaskUnPacked10BitYCbCrBuffer(uint16_t* ycbcrUnPackedBuffer, uint16_t signalMask , uint32_t numPixels);
148 
149 void AJA_EXPORT AJA_ReSampleLine(AJA_RGBAlphaPixel *Input, AJA_RGBAlphaPixel *Output, uint16_t startPixel, uint16_t endPixel, int32_t numInputPixels, int32_t numOutputPixels);
150 void AJA_EXPORT AJA_ReSampleLine(int16_t *Input, int16_t *Output, uint16_t startPixel, uint16_t endPixel, int32_t numInputPixels, int32_t numOutputPixels);
151 void AJA_EXPORT AJA_ReSampleYCbCrSampleLine(int16_t *Input, int16_t *Output, int32_t numInputPixels, int32_t numOutputPixels);
152 void AJA_EXPORT AJA_ReSampleAudio(int16_t *Input, int16_t *Output, uint16_t startPixel, uint16_t endPixel, int32_t numInputPixels, int32_t numOutputPixels, int16_t channelInterleaveMulitplier=1);
153 
154 void AJA_EXPORT WriteLineToBuffer(AJA_PixelFormat pixelFormat, uint32_t currentLine, uint32_t numPixels, uint32_t linePitch,
155  uint8_t* pOutputBuffer,uint32_t* pPackedLineBuffer);
156 void AJA_EXPORT WriteLineToBuffer(AJA_PixelFormat pixelFormat, AJA_BayerColorPhase bayerPhase, uint32_t currentLine,
157  uint32_t numPixels, uint32_t linePitch, uint8_t* pOutputBuffer,uint32_t* pPackedLineBuffer);
158 
160  uint16_t* YCbCrLine,
161  int32_t numPixels ,
162  int32_t startPixel,
163  bool fUseRGBFullRange=false);
164 
165 inline int16_t AJA_FixedRound(int32_t inFix)
166 {
167  int16_t retValue;
168 
169  if ( inFix < 0 )
170  {
171  retValue = (int16_t)(-((-inFix+0x8000)>>16));
172  }
173  else
174  {
175  retValue = (int16_t)((inFix + 0x8000)>>16);
176  }
177  return retValue;
178 }
179 
181  AJA_RGBAlpha10BitPixel *pTarget)
182 {
183  int32_t Red,Green,Blue;
184  int32_t ConvertedY;
185 
186  ConvertedY = 0x12A15*((int32_t)pSource->y - CCIR601_10BIT_BLACK);
187 
188  Red = AJA_FixedRound(ConvertedY +
189  0x19895*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET)));
190 
191  pTarget->Red = (uint16_t)ClipRGB_10BIT(Red);
192 
193  Blue = AJA_FixedRound(ConvertedY +
194  0x20469*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ));
195 
196  pTarget->Blue = (uint16_t)ClipRGB_10BIT(Blue);
197 
198  Green = AJA_FixedRound(ConvertedY -
199  0x644A*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ) -
200  0xD01F*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET) ));
201 
202  pTarget->Green = (uint16_t)ClipRGB_10BIT(Green);
203 
204  pTarget->Alpha = pSource->Alpha;
205 }
206 
208  AJA_RGBAlpha10BitPixel *pTarget)
209 {
210  int32_t Red,Green,Blue;
211  int32_t ConvertedY;
212 
213  ConvertedY = 0x12ACF*((int32_t)pSource->y - CCIR601_10BIT_BLACK);
214 
215  Red = AJA_FixedRound(ConvertedY +
216  0x1DF71*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET)));
217 
218  pTarget->Red = (uint16_t)ClipRGB_10BIT(Red);
219 
220  Blue = AJA_FixedRound(ConvertedY +
221  0x22A86*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ));
222 
223  pTarget->Blue = (uint16_t)ClipRGB_10BIT(Blue);
224 
225  Green = AJA_FixedRound(ConvertedY -
226  0x3806*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ) -
227  0x8C32*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET) ));
228 
229  pTarget->Green = (uint16_t)ClipRGB_10BIT(Green);
230 
231  pTarget->Alpha = pSource->Alpha;
232 }
233 
235  AJA_RGBAlphaPixel *pTarget)
236 {
237  int32_t Red,Green,Blue;
238  int32_t ConvertedY;
239 
240  ConvertedY = 0x4A86*((int32_t)pSource->y - CCIR601_10BIT_BLACK);
241 
242  Red = AJA_FixedRound(ConvertedY +
243  0x6626*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET)));
244 
245  pTarget->Red = (uint8_t)ClipRGB_8BIT(Red);
246 
247  Blue = AJA_FixedRound(ConvertedY +
248  0x811B*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ));
249 
250  pTarget->Blue = (uint8_t)ClipRGB_8BIT(Blue);
251 
252  Green = AJA_FixedRound(ConvertedY -
253  0x1913*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ) -
254  0x3408*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET) ));
255 
256  pTarget->Green = (uint8_t)ClipRGB_8BIT(Green);
257 
258  pTarget->Alpha = (uint8_t)pSource->Alpha;
259 }
260 
262  AJA_RGBAlphaPixel *pTarget)
263 {
264  int32_t Red,Green,Blue;
265  int32_t ConvertedY;
266 
267  ConvertedY = (0x12ACF>>2)*((int32_t)pSource->y - CCIR601_10BIT_BLACK);
268 
269  Red = AJA_FixedRound(ConvertedY +
270  (0x1DF71>>2)*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET)));
271 
272  pTarget->Red = (uint8_t)ClipRGB_8BIT(Red);
273 
274  Blue = AJA_FixedRound(ConvertedY +
275  (0x22A86>>2)*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ));
276 
277  pTarget->Blue = (uint8_t)ClipRGB_8BIT(Blue);
278 
279  Green = AJA_FixedRound(ConvertedY -
280  (0x3806>>2)*((int32_t)(pSource->cb-CCIR601_10BIT_CHROMAOFFSET) ) -
281  (0x8C32>>2)*((int32_t)(pSource->cr-CCIR601_10BIT_CHROMAOFFSET) ));
282 
283  pTarget->Green = (uint8_t)ClipRGB_8BIT(Green);
284 
285  pTarget->Alpha = (uint8_t)pSource->Alpha;
286 }
287 
289 
291 {
292  int32_t Y,Cb,Cr;
293 
294  Y = CCIR601_10BIT_BLACK + (((int32_t)0x41BC*pSource->Red +
295  (int32_t)0x810F*pSource->Green +
296  (int32_t)0x1910*pSource->Blue )>>14);
297  pTarget->y = (uint16_t)Y;
298 
299  Cb = CCIR601_10BIT_CHROMAOFFSET + (((int32_t)-0x25F1*pSource->Red -
300  (int32_t)0x4A7E*pSource->Green +
301  (int32_t)0x7070*pSource->Blue )>>14);
302 
303  pTarget->cb = uint16_t(Cb&0x3FF);
304 
305  Cr = CCIR601_10BIT_CHROMAOFFSET + (((int32_t)0x7070*pSource->Red -
306  (int32_t)0x5E27*pSource->Green -
307  (int32_t)0x1249*pSource->Blue )>>14);
308 
309  pTarget->cr = uint16_t(Cr&0x3FF);
310 }
311 
313 {
314  int32_t Y,Cb,Cr;
315 
316  Y = CCIR601_10BIT_BLACK + (((int32_t)0x2E8A*pSource->Red +
317  (int32_t)0x9C9F*pSource->Green +
318  (int32_t)0x0FD2*pSource->Blue )>>14);
319  pTarget->y = (uint16_t)Y;
320 
321  Cb = CCIR601_10BIT_CHROMAOFFSET + (((int32_t)-0x18F4*pSource->Red -
322  (int32_t)0x545B*pSource->Green +
323  (int32_t)0x6DA9*pSource->Blue )>>14);
324 
325  pTarget->cb = uint16_t(Cb&0x3FF);
326 
327  Cr = CCIR601_10BIT_CHROMAOFFSET + (((int32_t)0x6D71*pSource->Red -
328  (int32_t)0x6305*pSource->Green -
329  (int32_t)0x0A06*pSource->Blue )>>14);
330 
331  pTarget->cr = uint16_t(Cr&0x3FF);
332 }
333 
334 inline void AJA_HDConvertRGBAlpha10toYCbCr(AJA_RGBAlpha10BitPixel * pSource, AJA_YCbCr10BitPixel * pTarget,bool rgbFullRange)
335 {
336  double dY,dCb,dCr;
337  int32_t Y,Cb,Cr;
338  if ( rgbFullRange)
339  {
340  dY = (double(pSource->Red ) * 0.182068) +
341  (double(pSource->Green) * 0.612427) +
342  (double(pSource->Blue ) * 0.061829);
343  Y = CCIR601_10BIT_BLACK + int32_t(dY);
344  pTarget->y = uint16_t(Y&0x3FF);
345 
346  dCb = (double(pSource->Red ) * (-0.100342)) +
347  (double(pSource->Green) * (-0.337585)) +
348  (double(pSource->Blue ) * (0.437927));
349  Cb = CCIR601_10BIT_CHROMAOFFSET + int32_t(dCb);
350  pTarget->cb = uint16_t(Cb&0x3FF);
351 
352  dCr = (double(pSource->Red ) * (0.437927)) +
353  (double(pSource->Green) * (-0.397766)) +
354  (double(pSource->Blue ) * (-0.040161));
355  Cr = CCIR601_10BIT_CHROMAOFFSET + int32_t(dCr);
356  pTarget->cr = uint16_t(Cr&0x3FF);
357 
358  }
359  else
360  {
361  dY = (double(pSource->Red ) * 0.212585) +
362  (double(pSource->Green) * 0.715210) +
363  (double(pSource->Blue ) * 0.072205);
364  Y = int32_t(dY);
365  pTarget->y = uint16_t(Y&0x3FF);
366 
367  dCb = (double(pSource->Red ) * (-0.117188)) +
368  (double(pSource->Green) * (-0.394226)) +
369  (double(pSource->Blue ) * (0.511414));
370  Cb = CCIR601_10BIT_CHROMAOFFSET + int32_t(dCb);
371  pTarget->cb = uint16_t(Cb&0x3FF);
372 
373  dCr = (double(pSource->Red ) * (0.511414)) +
374  (double(pSource->Green) * (-0.464508)) +
375  (double(pSource->Blue ) * (-0.046906));
376  Cr = CCIR601_10BIT_CHROMAOFFSET + int32_t(dCr);
377  pTarget->cr = uint16_t(Cr&0x3FF);
378  }
379 }
380 
381 #endif // AJA_VIDEOUTILS_H
AJA_RGBAlpha16BitPixel::Alpha
uint16_t Alpha
Definition: videoutilities.h:93
AJA_YCbCr10BitPixel::y
uint16_t y
Definition: videoutilities.h:107
AJA_SIGNALMASK_ALL
@ AJA_SIGNALMASK_ALL
Definition: videoutilities.h:65
createVideoFrame
void AJA_EXPORT createVideoFrame(uint32_t *buffer, uint64_t frameNumber, AJA_PixelFormat pixFmt, uint32_t lines, uint32_t pixels, uint32_t linepitch, uint16_t y, uint16_t cb, uint16_t cr)
Definition: videoutilities.cpp:158
AJA_HDConvertRGBAlphatoYCbCr
void AJA_HDConvertRGBAlphatoYCbCr(AJA_RGBAlphaPixel *pSource, AJA_YCbCr10BitPixel *pTarget)
Definition: videoutilities.h:312
AJA_MaskUnPacked10BitYCbCrBuffer
void AJA_EXPORT AJA_MaskUnPacked10BitYCbCrBuffer(uint16_t *ycbcrUnPackedBuffer, uint16_t signalMask, uint32_t numPixels)
Definition: videoutilities.cpp:1464
AJA_SIGNALMASK_Y
@ AJA_SIGNALMASK_Y
Definition: videoutilities.h:62
AJA_Convert16BitRGBtoBayer12BitDPXLJ
void AJA_EXPORT AJA_Convert16BitRGBtoBayer12BitDPXLJ(AJA_RGBAlpha16BitPixel *rgbaBuffer, uint32_t *bayerBuffer, uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase=AJA_BayerColorPhase_RedGreen)
Definition: videoutilities.cpp:863
AJA_ConvertLineToYCbCr422
void AJA_EXPORT AJA_ConvertLineToYCbCr422(AJA_RGBAlphaPixel *RGBLine, uint16_t *YCbCrLine, int32_t numPixels, int32_t startPixel, bool fUseSDMatrix)
Definition: videoutilities.cpp:443
AJA_AlphaRGBPixel::Green
uint8_t Green
Definition: videoutilities.h:78
AJA_ConvertLinetoRGB
void AJA_EXPORT AJA_ConvertLinetoRGB(uint8_t *ycbcrBuffer, AJA_RGBAlphaPixel *rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix)
Definition: videoutilities.cpp:578
AJA_Convert16BitRGBtoBayer10BitDPXPacked
void AJA_EXPORT AJA_Convert16BitRGBtoBayer10BitDPXPacked(AJA_RGBAlpha16BitPixel *rgbaBuffer, uint8_t *bayerBuffer, uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase=AJA_BayerColorPhase_RedGreen)
Definition: videoutilities.cpp:938
AJA_SIGNALMASK_Cb
@ AJA_SIGNALMASK_Cb
Definition: videoutilities.h:63
AJA_MakeUnPacked8BitYCbCrBuffer
void AJA_EXPORT AJA_MakeUnPacked8BitYCbCrBuffer(uint8_t *buffer, uint8_t Y, uint8_t Cb, uint8_t Cr, uint32_t numPixels)
Definition: videoutilities.cpp:418
AJA_ConvertARGBToBGR
void AJA_EXPORT AJA_ConvertARGBToBGR(uint8_t *rgbaBuffer, uint32_t numPixels)
AJA_SDConvertRGBAlphatoYCbCr
void AJA_SDConvertRGBAlphatoYCbCr(AJA_RGBAlphaPixel *pSource, AJA_YCbCr10BitPixel *pTarget)
Definition: videoutilities.h:290
AJA_Convert16BitARGBTo16BitRGB
void AJA_EXPORT AJA_Convert16BitARGBTo16BitRGB(AJA_RGBAlpha16BitPixel *rgbaLineBuffer, uint16_t *rgbLineBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:1210
AJA_ConvertRGBAlphatoYCbCr
void(* AJA_ConvertRGBAlphatoYCbCr)(AJA_RGBAlphaPixel *pSource, AJA_YCbCr10BitPixel *pTarget)
Definition: videoutilities.h:288
AJA_AlphaRGBPixel
Definition: videoutilities.h:75
AJA_EXPORT
#define AJA_EXPORT
Definition: export.h:34
AJA_CalcRowBytesForFormat
uint32_t AJA_EXPORT AJA_CalcRowBytesForFormat(AJA_PixelFormat format, uint32_t width)
Definition: videoutilities.cpp:174
AJA_ConvertRGBAlpha10LineToYCbCr422
void AJA_EXPORT AJA_ConvertRGBAlpha10LineToYCbCr422(AJA_RGBAlpha10BitPixel *RGBLine, uint16_t *YCbCrLine, int32_t numPixels, int32_t startPixel, bool fUseRGBFullRange=false)
Definition: videoutilities.cpp:483
AJA_RGBAlpha10BitPixel::Green
uint16_t Green
Definition: videoutilities.h:84
AJA_RGBAlpha10BitPixel
Definition: videoutilities.h:82
AJA_AlphaRGBPixel::Blue
uint8_t Blue
Definition: videoutilities.h:79
AJA_SDConvert10BitYCbCrto10BitRGB
void AJA_SDConvert10BitYCbCrto10BitRGB(AJA_YCbCr10BitAlphaPixel *pSource, AJA_RGBAlpha10BitPixel *pTarget)
Definition: videoutilities.h:180
WriteLineToBuffer
void AJA_EXPORT WriteLineToBuffer(AJA_PixelFormat pixelFormat, uint32_t currentLine, uint32_t numPixels, uint32_t linePitch, uint8_t *pOutputBuffer, uint32_t *pPackedLineBuffer)
Definition: videoutilities.cpp:1539
AJA_YCbCr10BitAlphaPixel::cr
uint16_t cr
Definition: videoutilities.h:101
AJA_PackTo10BitYCbCrDPXBuffer
void AJA_EXPORT AJA_PackTo10BitYCbCrDPXBuffer(uint16_t *ycbcrBuffer, uint32_t *packedBuffer, uint32_t numPixels, bool bigEndian=true)
Definition: videoutilities.cpp:291
public.h
Master header for the ajabase library.
AJA_HDConvertRGBAlpha10toYCbCr
void AJA_HDConvertRGBAlpha10toYCbCr(AJA_RGBAlpha10BitPixel *pSource, AJA_YCbCr10BitPixel *pTarget, bool rgbFullRange)
Definition: videoutilities.h:334
AJA_ConvertARGBToRGBA
void AJA_EXPORT AJA_ConvertARGBToRGBA(uint8_t *rgbaBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:1151
AJA_RGBAlphaPixel::Blue
uint8_t Blue
Definition: videoutilities.h:69
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
AJA_YCbCr10BitAlphaPixel
Definition: videoutilities.h:96
AJA_PackRGB10BitFor10BitRGBPacked
void AJA_EXPORT AJA_PackRGB10BitFor10BitRGBPacked(AJA_RGBAlpha10BitPixel *rgba10BitBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:328
AJA_RGBAlpha10BitPixel::Alpha
uint16_t Alpha
Definition: videoutilities.h:86
AJA_PackTo10BitYCbCrBuffer
void AJA_EXPORT AJA_PackTo10BitYCbCrBuffer(uint16_t *ycbcrBuffer, uint32_t *packedBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:276
AJA_YCbCr10BitPixel
Definition: videoutilities.h:104
AJA_RGBAlphaPixel::Alpha
uint8_t Alpha
Definition: videoutilities.h:72
AJA_RGBAlphaPixel
Definition: videoutilities.h:68
AJA_YCbCr10BitPixel::cb
uint16_t cb
Definition: videoutilities.h:106
AJA_RGBAlphaPixel::Green
uint8_t Green
Definition: videoutilities.h:70
AJA_RGBAlpha16BitPixel
Definition: videoutilities.h:89
AJA_SDConvert10BitYCbCrtoRGB
void AJA_SDConvert10BitYCbCrtoRGB(AJA_YCbCr10BitAlphaPixel *pSource, AJA_RGBAlphaPixel *pTarget)
Definition: videoutilities.h:234
AJA_BayerColorPhase_RedGreen
@ AJA_BayerColorPhase_RedGreen
Definition: videotypes.h:202
AJA_PackRGB10BitFor10BitDPX
void AJA_EXPORT AJA_PackRGB10BitFor10BitDPX(AJA_RGBAlpha10BitPixel *rgba10BitBuffer, uint32_t numPixels, bool bigEndian=true)
Definition: videoutilities.cpp:344
AJA_AlphaRGBPixel::Alpha
uint8_t Alpha
Definition: videoutilities.h:76
AJA_ConvertLineto10BitRGB
void AJA_EXPORT AJA_ConvertLineto10BitRGB(uint16_t *ycbcrBuffer, AJA_RGBAlpha10BitPixel *rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix)
Definition: videoutilities.cpp:520
AJA_RGBAlpha16BitPixel::Green
uint16_t Green
Definition: videoutilities.h:91
AJA_YCbCr10BitAlphaPixel::Alpha
uint16_t Alpha
Definition: videoutilities.h:98
AJA_AlphaRGBPixel::Red
uint8_t Red
Definition: videoutilities.h:77
AJA_HDConvert10BitYCbCrto10BitRGB
void AJA_HDConvert10BitYCbCrto10BitRGB(AJA_YCbCr10BitAlphaPixel *pSource, AJA_RGBAlpha10BitPixel *pTarget)
Definition: videoutilities.h:207
AJA_ConvertARGBToRGB
void AJA_EXPORT AJA_ConvertARGBToRGB(uint8_t *rgbaBuffer, uint32_t numPixels)
AJA_ConvertLineto8BitYCbCr
void AJA_EXPORT AJA_ConvertLineto8BitYCbCr(uint16_t *ycbcr10BitBuffer, uint8_t *ycbcr8BitBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:432
AJA_ConvertUnpacked10BitYCbCrToPixelFormat
void AJA_EXPORT AJA_ConvertUnpacked10BitYCbCrToPixelFormat(uint16_t *unPackedBuffer, uint32_t *packedBuffer, uint32_t numPixels, AJA_PixelFormat pixelFormat)
Definition: videoutilities.cpp:1288
AJA_PackRGB10BitFor10BitRGB
void AJA_EXPORT AJA_PackRGB10BitFor10BitRGB(AJA_RGBAlpha10BitPixel *rgba10BitBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:315
CCIR601_10BIT_BLACK
#define CCIR601_10BIT_BLACK
Definition: videoutilities.h:18
AJA_SIGNALMASK_NONE
@ AJA_SIGNALMASK_NONE
Definition: videoutilities.h:61
AJA_ReSampleYCbCrSampleLine
void AJA_EXPORT AJA_ReSampleYCbCrSampleLine(int16_t *Input, int16_t *Output, int32_t numInputPixels, int32_t numOutputPixels)
Definition: videoutilities.cpp:1696
ClipRGB_10BIT
#define ClipRGB_10BIT(__x__)
Definition: videoutilities.h:50
AJA_UnPack10BitDPXtoRGBAlpha10BitPixel
void AJA_EXPORT AJA_UnPack10BitDPXtoRGBAlpha10BitPixel(AJA_RGBAlpha10BitPixel *rgba10BitBuffer, uint32_t *DPXLinebuffer, uint32_t numPixels, bool bigEndian=true)
Definition: videoutilities.cpp:361
AJA_YCbCr10BitAlphaPixel::cb
uint16_t cb
Definition: videoutilities.h:99
AJA_RGBAlpha16BitPixel::Red
uint16_t Red
Definition: videoutilities.h:92
AJA_ConvertPixelFormatToRGBA
void AJA_EXPORT AJA_ConvertPixelFormatToRGBA(uint32_t *buffer, AJA_RGBAlphaPixel *rgbBuffer, uint32_t numPixels, AJA_PixelFormat pixelFormat, bool bIsSD=false)
Definition: videoutilities.cpp:1390
AJA_Convert16BitRGBtoBayer10BitDPXLJ
void AJA_EXPORT AJA_Convert16BitRGBtoBayer10BitDPXLJ(AJA_RGBAlpha16BitPixel *rgbaBuffer, uint32_t *bayerBuffer, uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase=AJA_BayerColorPhase_RedGreen)
Definition: videoutilities.cpp:771
AJA_RePackLineDataForYCbCrDPX
void AJA_EXPORT AJA_RePackLineDataForYCbCrDPX(uint32_t *packedycbcrLine, uint32_t numULWords)
Definition: videoutilities.cpp:1269
AJA_SIGNALMASK_Cr
@ AJA_SIGNALMASK_Cr
Definition: videoutilities.h:64
AJA_MakeUnPacked10BitYCbCrBuffer
void AJA_EXPORT AJA_MakeUnPacked10BitYCbCrBuffer(uint16_t *buffer, uint16_t Y, uint16_t Cb, uint16_t Cr, uint32_t numPixels)
Definition: videoutilities.cpp:406
AJA_RGBAlpha10BitPixel::Blue
uint16_t Blue
Definition: videoutilities.h:83
AJA_UnPack10BitYCbCrBuffer
void AJA_EXPORT AJA_UnPack10BitYCbCrBuffer(uint32_t *packedBuffer, uint16_t *ycbcrBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:262
AJA_Convert16BitRGBtoBayer12BitDPXPacked
void AJA_EXPORT AJA_Convert16BitRGBtoBayer12BitDPXPacked(AJA_RGBAlpha16BitPixel *rgbaBuffer, uint8_t *bayerBuffer, uint32_t numPixels, uint32_t line, AJA_BayerColorPhase phase=AJA_BayerColorPhase_RedGreen)
Definition: videoutilities.cpp:1062
videotypes.h
Declares the enumeration constants used in the ajabase library.
AJA_ConvertLineto16BitRGB
void AJA_EXPORT AJA_ConvertLineto16BitRGB(uint16_t *ycbcrBuffer, AJA_RGBAlpha16BitPixel *rgbaBuffer, uint32_t numPixels, bool fUseSDMatrix)
Definition: videoutilities.cpp:700
AJA_ReSampleAudio
void AJA_EXPORT AJA_ReSampleAudio(int16_t *Input, int16_t *Output, uint16_t startPixel, uint16_t endPixel, int32_t numInputPixels, int32_t numOutputPixels, int16_t channelInterleaveMulitplier=1)
Definition: videoutilities.cpp:1760
AJA_FixedRound
int16_t AJA_FixedRound(int32_t inFix)
Definition: videoutilities.h:165
AJA_Convert8BitYCbCrToYUY2
void AJA_EXPORT AJA_Convert8BitYCbCrToYUY2(uint8_t *ycbcrBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:1253
AJA_Convert16BitARGBTo12BitRGBPacked
void AJA_EXPORT AJA_Convert16BitARGBTo12BitRGBPacked(AJA_RGBAlpha16BitPixel *rgbaLineBuffer, uint8_t *rgbLineBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:1224
CCIR601_10BIT_CHROMAOFFSET
#define CCIR601_10BIT_CHROMAOFFSET
Definition: videoutilities.h:20
AJA_ReSampleLine
void AJA_EXPORT AJA_ReSampleLine(AJA_RGBAlphaPixel *Input, AJA_RGBAlphaPixel *Output, uint16_t startPixel, uint16_t endPixel, int32_t numInputPixels, int32_t numOutputPixels)
Definition: videoutilities.cpp:1635
AJA_YCbCr10BitPixel::cr
uint16_t cr
Definition: videoutilities.h:108
AJA_UnPack10BitDPXtoRGBAlphaBitPixel
void AJA_EXPORT AJA_UnPack10BitDPXtoRGBAlphaBitPixel(uint8_t *rgbaBuffer, uint32_t *DPXLinebuffer, uint32_t numPixels, bool bigEndian=true)
Definition: videoutilities.cpp:381
AJA_PixelFormat
AJA_PixelFormat
Definition: videotypes.h:121
AJA_RGBAlphaPixel::Red
uint8_t Red
Definition: videoutilities.h:71
AJA_BayerColorPhase
AJA_BayerColorPhase
Definition: videotypes.h:199
AJA_HDConvert10BitYCbCrtoRGB
void AJA_HDConvert10BitYCbCrtoRGB(AJA_YCbCr10BitAlphaPixel *pSource, AJA_RGBAlphaPixel *pTarget)
Definition: videoutilities.h:261
AJA_YCbCr10BitAlphaPixel::y
uint16_t y
Definition: videoutilities.h:100
AJA_ConvertARGBToABGR
void AJA_EXPORT AJA_ConvertARGBToABGR(uint8_t *rgbaBuffer, uint32_t numPixels)
Definition: videoutilities.cpp:1167
AJASignalMask
AJASignalMask
Definition: videoutilities.h:60
ClipRGB_8BIT
#define ClipRGB_8BIT(__x__)
Definition: videoutilities.h:45
AJA_RGBAlpha16BitPixel::Blue
uint16_t Blue
Definition: videoutilities.h:90
AJA_RGBAlpha10BitPixel::Red
uint16_t Red
Definition: videoutilities.h:85