AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ntv2enhancedcsc.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2_ENHANCED_CSC_H
9 #define NTV2_ENHANCED_CSC_H
10 
11 #include "ajaexport.h"
12 #include "ntv2card.h"
13 #include "ntv2cscmatrix.h"
14 
15 typedef enum
16 {
20 
23 
24 
25 typedef enum
26 {
30 
33 
34 
35 typedef enum
36 {
39 
42 
43 
44 typedef enum
45 {
48 
51 
52 
53 typedef enum
54 {
57 
60 
61 
66 {
67 // Class Methods
68 public:
69  // Construction, Copying, Assigning
70  explicit CNTV2EnhancedCSC () { };
71  virtual inline ~CNTV2EnhancedCSC () { }
72 
73 
74 // Instance Methods
75 public:
76  inline CNTV2CSCMatrix & Matrix (void) {return mMatrix;}
77  inline const CNTV2CSCMatrix & Matrix (void) const {return mMatrix;}
78 
79  bool SetInputPixelFormat (const NTV2EnhancedCSCPixelFormat inPixelFormat);
80  inline NTV2EnhancedCSCPixelFormat GetInputPixelFormat (void) const {return mInputPixelFormat;}
81 
82  bool SetOutputPixelFormat (const NTV2EnhancedCSCPixelFormat inPixelFormat);
83  inline NTV2EnhancedCSCPixelFormat GetOutputPixelFormat (void) const {return mOutputPixelFormat;}
84 
85  bool SetChromaFilterSelect (const NTV2EnhancedCSCChromaFilterSelect inChromaFilterSelect);
86  inline NTV2EnhancedCSCChromaFilterSelect GetChromaFilterSelect (void) const {return mChromaFilterSelect;}
87 
88  bool SetChromaEdgeControl (const NTV2EnhancedCSCChromaEdgeControl inChromaEdgeControl);
89  inline NTV2EnhancedCSCChromaEdgeControl GetChromaEdgeControl (void) const {return mChromaEdgeControl;}
90 
91  bool SetKeySource (const NTV2EnhancedCSCKeySource inKeySource);
92  inline NTV2EnhancedCSCKeySource GetKeySource (void) const {return mKeySource;}
93 
94  bool SetKeyOutputRange (const NTV2EnhancedCSCKeyOutputRange inKeyOutputRange);
95  inline NTV2EnhancedCSCKeyOutputRange GetKeyOutputRange (void) const {return mKeyOutputRange;}
96 
97  bool SetKeyInputOffset (const int16_t inKeyInputOffset);
98  inline int16_t GetKeyInputOffset (void) const {return mKeyInputOffset;}
99 
100  bool SetKeyOutputOffset (const uint16_t inKeyOutputOffset);
101  inline uint16_t GetKeyOutputOffset (void) const {return mKeyOutputOffset;}
102 
103  bool SetKeyGain (const double inKeyGain);
104  inline double GetKeyGain (void) const {return mKeyGain;}
105 
106  bool SendToHardware (CNTV2Card & inDevice, const NTV2Channel inChannel) const;
107  bool GetFromHardware (CNTV2Card & inDevice, const NTV2Channel inChannel);
108 
109 // Instance Data
110 private:
111  NTV2EnhancedCSCPixelFormat mInputPixelFormat;
112  NTV2EnhancedCSCPixelFormat mOutputPixelFormat;
113  NTV2EnhancedCSCChromaFilterSelect mChromaFilterSelect;
114  NTV2EnhancedCSCChromaEdgeControl mChromaEdgeControl;
115  NTV2EnhancedCSCKeySource mKeySource;
116  NTV2EnhancedCSCKeyOutputRange mKeyOutputRange;
117  int16_t mKeyInputOffset;
118  uint16_t mKeyOutputOffset;
119  double mKeyGain;
120  CNTV2CSCMatrix mMatrix;
121 
122 }; // CNTV2EnhancedCSC
123 
124 
125 #endif // NTV2_ENHANCED_CSC_H
126 
NTV2EnhancedCSCKeyOutputRange
NTV2EnhancedCSCKeyOutputRange
Definition: ntv2enhancedcsc.h:53
CNTV2EnhancedCSC::GetKeyGain
double GetKeyGain(void) const
Definition: ntv2enhancedcsc.h:104
ntv2cscmatrix.h
Declares the utility class for abstract color space matrix operations.
CNTV2EnhancedCSC::GetChromaEdgeControl
NTV2EnhancedCSCChromaEdgeControl GetChromaEdgeControl(void) const
Definition: ntv2enhancedcsc.h:89
NTV2_Enhanced_CSC_Pixel_Format_YCbCr444
@ NTV2_Enhanced_CSC_Pixel_Format_YCbCr444
Definition: ntv2enhancedcsc.h:18
ajaexport.h
Defines the import/export macros for producing DLLs or LIBs.
NTV2_Enhanced_CSC_Key_Output_Range_Full
@ NTV2_Enhanced_CSC_Key_Output_Range_Full
Definition: ntv2enhancedcsc.h:55
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific Frame Store. They're also commonly used to i...
Definition: ntv2enums.h:1305
NTV2_Enhanced_CSC_Num_Pixel_Formats
@ NTV2_Enhanced_CSC_Num_Pixel_Formats
Definition: ntv2enhancedcsc.h:21
CNTV2CSCMatrix
This class supports the color space conversion matrix described below.
Definition: ntv2cscmatrix.h:98
NTV2_Enhanced_CSC_Chroma_Filter_Select_Full
@ NTV2_Enhanced_CSC_Chroma_Filter_Select_Full
Definition: ntv2enhancedcsc.h:27
CNTV2EnhancedCSC::GetOutputPixelFormat
NTV2EnhancedCSCPixelFormat GetOutputPixelFormat(void) const
Definition: ntv2enhancedcsc.h:83
NTV2EnhancedCSCChromaEdgeControl
NTV2EnhancedCSCChromaEdgeControl
Definition: ntv2enhancedcsc.h:35
CNTV2EnhancedCSC::~CNTV2EnhancedCSC
virtual ~CNTV2EnhancedCSC()
Definition: ntv2enhancedcsc.h:71
CNTV2EnhancedCSC::GetKeySource
NTV2EnhancedCSCKeySource GetKeySource(void) const
Definition: ntv2enhancedcsc.h:92
CNTV2EnhancedCSC::GetKeyOutputRange
NTV2EnhancedCSCKeyOutputRange GetKeyOutputRange(void) const
Definition: ntv2enhancedcsc.h:95
NTV2_Enhanced_CSC_Num_Chroma_Edge_Controls
@ NTV2_Enhanced_CSC_Num_Chroma_Edge_Controls
Definition: ntv2enhancedcsc.h:40
NTV2_Enhanced_CSC_Chroma_Edge_Control_Extended
@ NTV2_Enhanced_CSC_Chroma_Edge_Control_Extended
Definition: ntv2enhancedcsc.h:38
NTV2_Enhanced_CSC_Chroma_Filter_Select_None
@ NTV2_Enhanced_CSC_Chroma_Filter_Select_None
Definition: ntv2enhancedcsc.h:29
CNTV2EnhancedCSC::GetKeyInputOffset
int16_t GetKeyInputOffset(void) const
Definition: ntv2enhancedcsc.h:98
NTV2_Enhanced_CSC_Pixel_Format_YCbCr422
@ NTV2_Enhanced_CSC_Pixel_Format_YCbCr422
Definition: ntv2enhancedcsc.h:19
NTV2_Enhanced_CSC_Chroma_Edge_Control_Black
@ NTV2_Enhanced_CSC_Chroma_Edge_Control_Black
Definition: ntv2enhancedcsc.h:37
ntv2card.h
Declares the CNTV2Card class.
NTV2_Enhanced_CSC_Key_Output_Range_SMPTE
@ NTV2_Enhanced_CSC_Key_Output_Range_SMPTE
Definition: ntv2enhancedcsc.h:56
CNTV2EnhancedCSC::GetChromaFilterSelect
NTV2EnhancedCSCChromaFilterSelect GetChromaFilterSelect(void) const
Definition: ntv2enhancedcsc.h:86
NTV2EnhancedCSCPixelFormat
NTV2EnhancedCSCPixelFormat
Definition: ntv2enhancedcsc.h:15
NTV2_Enhanced_CSC_Pixel_Format_RGB444
@ NTV2_Enhanced_CSC_Pixel_Format_RGB444
Definition: ntv2enhancedcsc.h:17
NTV2_Enhanced_CSC_Num_Key_Output_Ranges
@ NTV2_Enhanced_CSC_Num_Key_Output_Ranges
Definition: ntv2enhancedcsc.h:58
CNTV2Card
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:262
NTV2_Enhanced_CSC_Key_Source_Key_Input
@ NTV2_Enhanced_CSC_Key_Source_Key_Input
Definition: ntv2enhancedcsc.h:46
CNTV2EnhancedCSC::CNTV2EnhancedCSC
CNTV2EnhancedCSC()
Definition: ntv2enhancedcsc.h:70
NTV2_Enhanced_CSC_Key_Spurce_A0_Input
@ NTV2_Enhanced_CSC_Key_Spurce_A0_Input
Definition: ntv2enhancedcsc.h:47
NTV2_Enhanced_CSC_Num_Chroma_Filter_Selects
@ NTV2_Enhanced_CSC_Num_Chroma_Filter_Selects
Definition: ntv2enhancedcsc.h:31
CNTV2EnhancedCSC::Matrix
CNTV2CSCMatrix & Matrix(void)
Definition: ntv2enhancedcsc.h:76
NTV2_Enhanced_CSC_Num_Key_Sources
@ NTV2_Enhanced_CSC_Num_Key_Sources
Definition: ntv2enhancedcsc.h:49
CNTV2EnhancedCSC::Matrix
const CNTV2CSCMatrix & Matrix(void) const
Definition: ntv2enhancedcsc.h:77
AJAExport
#define AJAExport
Definition: export.h:33
CNTV2EnhancedCSC::GetKeyOutputOffset
uint16_t GetKeyOutputOffset(void) const
Definition: ntv2enhancedcsc.h:101
NTV2_Enhanced_CSC_Chroma_Filter_Select_Simple
@ NTV2_Enhanced_CSC_Chroma_Filter_Select_Simple
Definition: ntv2enhancedcsc.h:28
NTV2EnhancedCSCChromaFilterSelect
NTV2EnhancedCSCChromaFilterSelect
Definition: ntv2enhancedcsc.h:25
CNTV2EnhancedCSC
This class controls the enhanced color space converter.
Definition: ntv2enhancedcsc.h:65
NTV2EnhancedCSCKeySource
NTV2EnhancedCSCKeySource
Definition: ntv2enhancedcsc.h:44
CNTV2EnhancedCSC::GetInputPixelFormat
NTV2EnhancedCSCPixelFormat GetInputPixelFormat(void) const
Definition: ntv2enhancedcsc.h:80