AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
ntv2regconv.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #include "ntv2card.h"
9 
10 
11 // kRegConversionControl
26 
27 bool CNTV2Card::GetEnableConverter (bool & outValue)
28 {
29  ULWord ULWvalue = ULWord(outValue);
31  outValue = ULWvalue ? true : false;
32  return retVal;
33 }
34 
44 
45 
47 {
48  NTV2Standard inStandard;
49  NTV2Standard outStandard;
50  bool isPulldown=false;
51  bool isDeinterlace=false;
52 
54  switch ( mode )
55  {
57  inStandard = NTV2_STANDARD_1080;
58  outStandard = NTV2_STANDARD_525;
59  break;
61  inStandard = NTV2_STANDARD_1080;
62  outStandard = NTV2_STANDARD_625;
63  break;
65  inStandard = NTV2_STANDARD_720;
66  outStandard = NTV2_STANDARD_525;
67  break;
69  inStandard = NTV2_STANDARD_720;
70  outStandard = NTV2_STANDARD_625;
71  break;
73  inStandard = NTV2_STANDARD_525;
74  outStandard = NTV2_STANDARD_1080;
75  break;
77  inStandard = NTV2_STANDARD_525;
78  outStandard = NTV2_STANDARD_720;
79  break;
81  inStandard = NTV2_STANDARD_625;
82  outStandard = NTV2_STANDARD_1080;
83  break;
85  inStandard = NTV2_STANDARD_625;
86  outStandard = NTV2_STANDARD_720;
87  break;
89  inStandard = NTV2_STANDARD_720;
90  outStandard = NTV2_STANDARD_1080;
91  break;
93  inStandard = NTV2_STANDARD_720;
94  outStandard = NTV2_STANDARD_1080;
95  break;
97  inStandard = NTV2_STANDARD_720;
98  outStandard = NTV2_STANDARD_1080;
99  break;
101  inStandard = NTV2_STANDARD_1080;
102  outStandard = NTV2_STANDARD_525;
103  break;
105  inStandard = NTV2_STANDARD_1080;
106  outStandard = NTV2_STANDARD_525;
107  isPulldown = true;
108  break;
110  inStandard = NTV2_STANDARD_1080;
111  outStandard = NTV2_STANDARD_525;
112  break;
114  inStandard = NTV2_STANDARD_1080;
115  outStandard = NTV2_STANDARD_525;
116  break;
118  inStandard = NTV2_STANDARD_1080;
119  outStandard = NTV2_STANDARD_525;
120  isPulldown = true;
121  break;
123  inStandard = NTV2_STANDARD_1080;
124  outStandard = NTV2_STANDARD_525;
125  break;
127  inStandard = NTV2_STANDARD_1080;
128  outStandard = NTV2_STANDARD_720;
129  break;
131  inStandard = NTV2_STANDARD_1080;
132  outStandard = NTV2_STANDARD_720;
133  break;
135  inStandard = NTV2_STANDARD_1080;
136  outStandard = NTV2_STANDARD_720;
137  break;
138 
140  inStandard = NTV2_STANDARD_1080;
141  outStandard = NTV2_STANDARD_720;
142  break;
144  inStandard = NTV2_STANDARD_720;
145  outStandard = NTV2_STANDARD_1080;
146  break;
147 
149  inStandard = NTV2_STANDARD_525;
150  outStandard = NTV2_STANDARD_1080;
151  break;
152 
154  inStandard = NTV2_STANDARD_525;
155  outStandard = NTV2_STANDARD_525;
156  break;
158  inStandard = NTV2_STANDARD_625;
159  outStandard = NTV2_STANDARD_625;
160  break;
161 
163  inStandard = NTV2_STANDARD_525;
164  outStandard = NTV2_STANDARD_525;
165  isDeinterlace = true;
166  break;
167 
169  inStandard = NTV2_STANDARD_625;
170  outStandard = NTV2_STANDARD_625;
171  isDeinterlace = true;
172  break;
173 
175  inStandard = NTV2_STANDARD_1080;
176  outStandard = NTV2_STANDARD_1080;
177  isDeinterlace = true;
178  break;
179 
181  inStandard = NTV2_STANDARD_1080;
182  outStandard = NTV2_STANDARD_1080;
183  isDeinterlace = true;
184  break;
185 
187  inStandard = NTV2_STANDARD_1080;
188  outStandard = NTV2_STANDARD_1080;
189  isDeinterlace = true;
190  break;
191 
193  inStandard = NTV2_STANDARD_1080p;
194  outStandard = NTV2_STANDARD_720;
195  break;
196 
197  default:
198  return false;
199  }
200 
201  SetConverterInStandard(inStandard);
202  SetConverterOutStandard(outStandard);
204  {
207  format = GetOutputForConversionMode(mode);
209  }
210  SetConverterPulldown( isPulldown );
211  SetDeinterlaceMode(isDeinterlace);
212 
213  return true;
214 
215 } // SetK2ConversionMode
216 
217 
219 {
220  NTV2Standard inStandard;
221  NTV2Standard outStandard;
222 
223  GetConverterInStandard(inStandard);
224  GetConverterOutStandard(outStandard);
225 
226  outMode = NTV2_CONVERSIONMODE_INVALID;
227 
228  switch (inStandard)
229  {
230  case NTV2_STANDARD_525:
231  if ( outStandard == NTV2_STANDARD_1080)
232  outMode = NTV2_525_5994to1080i_5994;
233  else if ( outStandard == NTV2_STANDARD_720)
234  outMode = NTV2_525_5994to720p_5994;
235  else if ( outStandard == NTV2_STANDARD_525)
236  outMode = NTV2_525_5994to525_5994;
237  break;
238  case NTV2_STANDARD_625:
239  if ( outStandard == NTV2_STANDARD_1080)
240  outMode = NTV2_625_2500to1080i_2500;
241  else if ( outStandard == NTV2_STANDARD_720)
242  outMode = NTV2_625_2500to720p_5000;
243  else if ( outStandard == NTV2_STANDARD_625)
244  outMode = NTV2_625_2500to625_2500;
245  break;
246  case NTV2_STANDARD_720:
247  if ( outStandard == NTV2_STANDARD_525)
248  outMode = NTV2_720p_5994to525_5994;
249  else if (outStandard == NTV2_STANDARD_625)
250  outMode = NTV2_720p_5000to625_2500;
251  break;
252  case NTV2_STANDARD_1080:
253  if ( outStandard == NTV2_STANDARD_525)
254  outMode = NTV2_1080i_5994to525_5994;
255  else if (outStandard == NTV2_STANDARD_625)
256  outMode = NTV2_1080i_2500to625_2500;
257  break;
258 
259  case NTV2_STANDARD_1080p:
260  if ( outStandard == NTV2_STANDARD_720)
261  outMode = NTV2_1080p_3000to720p_6000;
262  break;
263 
264  default:
265  return false;
266  }
267  return true;
268 }
269 
270 
272 // Analog
273 #if !defined(R2_DEPRECATE)
276 #endif
277 
279 // LHI/IoExpress related methods
284 
285 // overloaded - alternately takes NTV2K2VideoDACMode instead of NTV2LHIVideoDACMode
287 {
288  switch(inValue)
289  {
299 
300  case NTV2_1080iRGB:
302 
303  case NTV2_1080iSMPTE:
305 
308 
309  // not yet supported
310  case NTV2_1080iXVGA:
311  case NTV2_1080psfXVGA:
312  case NTV2_720pXVGA:
313  case NTV2_2Kx1080RGB:
314  case NTV2_2Kx1080SMPTE:
315  case NTV2_2Kx1080XVGA:
316  default: break;
317  }
318  return false;
319 }
320 
321 
322 // overloaded - alternately returns NTV2K2VideoDACMode instead of NTV2LHIVideoDACMode
324 {
327  bool result (GetLHIVideoDACMode(lhiValue) && GetLHIVideoDACStandard(standard));
328 
329  if (result)
330  switch(standard)
331  {
332  case NTV2_STANDARD_525:
333  switch (lhiValue)
334  {
335  case NTV2LHI_480iRGB: outValue = NTV2_480iRGB; break;
336  case NTV2LHI_480iYPbPrSMPTE: outValue = NTV2_480iYPbPrSMPTE; break;
341  default: result = false; break;
342  }
343  break;
344 
345  case NTV2_STANDARD_625:
346  switch (lhiValue)
347  {
348  case NTV2LHI_576iRGB: outValue = NTV2_576iRGB; break;
349  case NTV2LHI_576iYPbPrSMPTE: outValue = NTV2_576iYPbPrSMPTE; break;
350  case NTV2LHI_576iPAL_Composite: outValue = NTV2_576iPAL_Composite; break;
351  default: result = false; break;
352  }
353  break;
354 
355  case NTV2_STANDARD_1080:
356  switch (lhiValue)
357  {
358  case NTV2LHI_1080iRGB: outValue = NTV2_1080iRGB; break; // also NTV2LHI_1080psfRGB
359  case NTV2LHI_1080iSMPTE: outValue = NTV2_1080iSMPTE; break; // also NTV2LHI_1080psfSMPTE
360  default: result = false; break;
361  }
362  break;
363 
364  case NTV2_STANDARD_720:
365  switch (lhiValue)
366  {
367  case NTV2LHI_720pRGB: outValue = NTV2_720pRGB; break;
368  case NTV2LHI_720pSMPTE: outValue = NTV2_720pSMPTE; break;
369  default: result = false; break;
370  }
371  break;
372 
373  case NTV2_STANDARD_1080p:
374  case NTV2_STANDARD_2K:
381  case NTV2_STANDARD_3840i:
382  case NTV2_STANDARD_4096i:
384  default:
385  result = false;
386  break;
387  }
388  return result;
389 }
390 
391 
392 // ProcAmp controls. Only work on boards with analog inputs.
421 
422 // FS1 (and other?) ProcAmp functions
423 // ProcAmp controls.
430 
437 
438 
439 
441 // Stereo Compressor
virtual bool GetStereoCompressorStandard(NTV2Standard &outValue)
NTV2FrameRate GetNTV2FrameRateFromVideoFormat(const NTV2VideoFormat inVideoFormat)
Definition: ntv2utils.cpp:3630
virtual bool WriteSDProcAmpControlsInitialized(const ULWord inNewValue=1)
NTV2VideoDACMode
Definition: ntv2enums.h:2142
virtual bool SetStereoCompressorFlipMode(const ULWord inNewValue)
virtual bool WriteHDCbOffsetAdjustment(const ULWord inNewValue)
Identifies SMPTE HD 1080p.
Definition: ntv2enums.h:171
virtual bool WriteSDSaturationAdjustment(const ULWord inNewValue)
virtual bool WriteHDContrastAdjustment(const ULWord inNewValue)
virtual bool SetStereoCompressorStandard(const NTV2Standard inNewValue)
virtual bool GetStereoCompressorRightSource(NTV2OutputCrosspointID &outValue)
virtual bool SetStereoCompressorRightSource(const NTV2OutputCrosspointID inNewValue)
virtual bool SetDownConvertMode(const NTV2DownConvertMode inValue)
Definition: ntv2regconv.cpp:22
virtual bool WriteProcAmpOffsetYAdjustment(const ULWord inNewValue)
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
virtual bool ReadHDCbOffsetAdjustment(ULWord &outValue)
virtual bool ReadHDSaturationAdjustmentCr(ULWord &outValue)
Identifies SMPTE SD 525i.
Definition: ntv2enums.h:169
virtual bool GetStereoCompressorLeftSource(NTV2OutputCrosspointID &outValue)
Identifies 4K psf.
Definition: ntv2enums.h:182
Identifies high frame-rate UHD.
Definition: ntv2enums.h:177
virtual bool SetStereoCompressorFlipLeftHorz(const ULWord inNewValue)
virtual bool WriteHDCrOffsetAdjustment(const ULWord inNewValue)
virtual bool GetUCPassLine21(ULWord &outValue)
Definition: ntv2regconv.cpp:41
virtual bool GetConverterInRate(NTV2FrameRate &outValue)
Definition: ntv2regconv.cpp:21
virtual bool SetLHIVideoDACMode(NTV2LHIVideoDACMode value)
virtual bool SetEnableConverter(const bool inValue)
Definition: ntv2regconv.cpp:25
virtual bool GetUCAutoLine21(ULWord &outValue)
Definition: ntv2regconv.cpp:43
virtual bool GetLHIVideoDACStandard(NTV2Standard &outValue)
uint32_t ULWord
Definition: ajatypes.h:223
virtual bool WriteHDSaturationAdjustmentCr(const ULWord inNewValue)
NTV2LHIVideoDACMode
Definition: ntv2enums.h:2173
virtual bool GetIsoConvertMode(NTV2IsoConvertMode &outValue)
Definition: ntv2regconv.cpp:35
Identifies SMPTE HD 2K1080psf.
Definition: ntv2enums.h:174
virtual bool SetAnalogInputADCMode(const NTV2LSVideoADCMode inValue)
virtual bool SetConverterPulldown(const ULWord inValue)
Definition: ntv2regconv.cpp:38
virtual bool WriteProcAmpC2CBAdjustment(const ULWord inNewValue)
virtual bool SetIsoConvertMode(const NTV2IsoConvertMode inValue)
Definition: ntv2regconv.cpp:24
Identifies SMPTE HD 720p.
Definition: ntv2enums.h:168
virtual bool WriteHDProcAmpControlsInitialized(const ULWord inNewValue=1)
NTV2FrameRate
Identifies a particular video frame rate.
Definition: ntv2enums.h:412
The version number of the UFC on the device.
virtual bool ReadHDProcAmpControlsInitialized(ULWord &outValue)
#define true
NTV2Standard
Identifies a particular video standard.
Definition: ntv2enums.h:165
virtual bool GetStereoCompressorOutputMode(NTV2StereoCompressorOutputMode &outValue)
virtual bool WriteHDBrightnessAdjustment(const ULWord inNewValue)
virtual bool SetConverterOutRate(const NTV2FrameRate inValue)
Definition: ntv2regconv.cpp:16
virtual bool GetStereoCompressorFlipRightVert(ULWord &outValue)
Identifies Ultra-High-Definition (UHD) psf.
Definition: ntv2enums.h:181
virtual bool ReadProcAmpOffsetYAdjustment(ULWord &outValue)
virtual bool GetConversionMode(NTV2ConversionMode &outConversionMode)
virtual bool SetConverterOutStandard(const NTV2Standard inValue)
Definition: ntv2regconv.cpp:14
virtual bool ReadRegister(const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device...
virtual bool SetUCAutoLine21(const ULWord inValue)
Definition: ntv2regconv.cpp:42
virtual bool ReadSDSaturationAdjustment(ULWord &outValue)
virtual bool GetConverterOutRate(NTV2FrameRate &outValue)
Definition: ntv2regconv.cpp:17
virtual bool ReadSDProcAmpControlsInitialized(ULWord &outValue)
virtual bool ReadSDBrightnessAdjustment(ULWord &outValue)
else retVal
Definition: ntv2vcam.cpp:1100
virtual bool ReadProcAmpC1YAdjustment(ULWord &outValue)
NTV2UpConvertMode
Definition: ntv2enums.h:2219
virtual bool SetConversionMode(const NTV2ConversionMode inConversionMode)
Definition: ntv2regconv.cpp:46
virtual bool ReadHDContrastAdjustment(ULWord &outValue)
virtual bool WriteHDSaturationAdjustmentCb(const ULWord inNewValue)
Identifies SMPTE HD 2K1080p.
Definition: ntv2enums.h:173
NTV2DownConvertMode
Definition: ntv2enums.h:2242
virtual bool WriteProcAmpC2CRAdjustment(const ULWord inNewValue)
virtual bool GetStereoCompressorFlipMode(ULWord &outValue)
virtual bool ReadHDCrOffsetAdjustment(ULWord &outValue)
virtual bool ReadHDBrightnessAdjustment(ULWord &outValue)
virtual bool SetLHIVideoDACStandard(const NTV2Standard inValue)
virtual bool ReadRegister(const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device...
virtual bool ReadSDHueAdjustment(ULWord &outValue)
virtual bool GetConverterPulldown(ULWord &outValue)
Definition: ntv2regconv.cpp:39
Identifies SMPTE HD 1080i or 1080psf.
Definition: ntv2enums.h:167
Identifies Ultra-High-Definition (UHD)
Definition: ntv2enums.h:175
virtual bool SetConverterInStandard(const NTV2Standard inValue)
Definition: ntv2regconv.cpp:18
virtual bool GetStereoCompressorFlipLeftVert(ULWord &outValue)
Identifies SMPTE SD 625i.
Definition: ntv2enums.h:170
virtual bool SetDeinterlaceMode(const ULWord inValue)
Definition: ntv2regconv.cpp:36
virtual bool ReadSDCrOffsetAdjustment(ULWord &outValue)
Identifies 4K.
Definition: ntv2enums.h:176
virtual bool SetStereoCompressorFlipRightVert(const ULWord inNewValue)
virtual bool SetUpConvertMode(const NTV2UpConvertMode inValue)
Definition: ntv2regconv.cpp:12
virtual bool GetUpConvertMode(NTV2UpConvertMode &outValue)
Definition: ntv2regconv.cpp:13
virtual bool WriteProcAmpC1CRAdjustment(const ULWord inNewValue)
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
NTV2OutputCrosspointID
Identifies a widget output, a signal source, that potentially can drive another widget's input (ident...
Definition: ntv2enums.h:2527
NTV2IsoConvertMode
Definition: ntv2enums.h:2253
virtual bool GetDownConvertMode(NTV2DownConvertMode &outValue)
Definition: ntv2regconv.cpp:23
virtual bool WriteSDContrastAdjustment(const ULWord inNewValue)
Identifies high frame-rate 4K.
Definition: ntv2enums.h:178
virtual bool ReadProcAmpC2CBAdjustment(ULWord &outValue)
virtual bool WriteRegister(const ULWord inRegNum, const ULWord inValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Updates or replaces all or part of the 32-bit contents of a specific register (real or virtual) on th...
virtual bool WriteSDCrOffsetAdjustment(const ULWord inNewValue)
virtual bool GetConverterOutStandard(NTV2Standard &outValue)
Definition: ntv2regconv.cpp:15
virtual bool WriteSDHueAdjustment(const ULWord inNewValue)
virtual bool SetStereoCompressorFlipLeftVert(const ULWord inNewValue)
Declares the CNTV2Card class.
virtual bool ReadProcAmpC2CRAdjustment(ULWord &outValue)
virtual bool SetStereoCompressorFlipRightHorz(const ULWord inNewValue)
NTV2VideoFormat GetInputForConversionMode(const NTV2ConversionMode conversionMode)
Definition: ntv2utils.cpp:5623
NTV2LSVideoADCMode
Definition: ntv2enums.h:2195
virtual bool WriteSDCbOffsetAdjustment(const ULWord inNewValue)
virtual bool SetConverterInRate(const NTV2FrameRate inValue)
Definition: ntv2regconv.cpp:20
virtual bool GetLHIVideoDACMode(NTV2LHIVideoDACMode &outValue)
NTV2ConversionMode
Definition: ntv2enums.h:3714
virtual bool ReadProcAmpC1CRAdjustment(ULWord &outValue)
virtual bool SetStereoCompressorOutputMode(const NTV2StereoCompressorOutputMode inNewValue)
virtual bool ReadProcAmpC1CBAdjustment(ULWord &outValue)
virtual bool GetAnalogInputADCMode(NTV2LSVideoADCMode &outValue)
virtual bool SetStereoCompressorLeftSource(const NTV2OutputCrosspointID inNewValue)
virtual bool WriteProcAmpC1CBAdjustment(const ULWord inNewValue)
virtual bool GetConverterInStandard(NTV2Standard &outValue)
Definition: ntv2regconv.cpp:19
virtual bool WriteSDBrightnessAdjustment(const ULWord inNewValue)
virtual bool GetStereoCompressorFlipRightHorz(ULWord &outValue)
virtual bool WriteProcAmpC1YAdjustment(const ULWord inNewValue)
virtual bool ReadSDContrastAdjustment(ULWord &outValue)
virtual bool ReadHDSaturationAdjustmentCb(ULWord &outValue)
NTV2StereoCompressorOutputMode
Definition: ntv2enums.h:3856
virtual bool GetEnableConverter(bool &outValue)
Definition: ntv2regconv.cpp:27
virtual bool GetStereoCompressorFlipLeftHorz(ULWord &outValue)
virtual bool SetUCPassLine21(const ULWord inValue)
Definition: ntv2regconv.cpp:40
NTV2VideoFormat GetOutputForConversionMode(const NTV2ConversionMode conversionMode)
Definition: ntv2utils.cpp:5667
virtual bool ReadSDCbOffsetAdjustment(ULWord &outValue)
virtual bool GetDeinterlaceMode(ULWord &outValue)
Definition: ntv2regconv.cpp:37