VTK
vtkMILVideoSource.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMILVideoSource.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
32 #ifndef vtkMILVideoSource_h
33 #define vtkMILVideoSource_h
34 
35 #include "vtkIOVideoModule.h" // For export macro
36 #include "vtkVideoSource.h"
37 
38 // digitizer hardware
39 #define VTK_MIL_DEFAULT 0
40 #define VTK_MIL_METEOR "M_SYSTEM_METEOR"
41 #define VTK_MIL_METEOR_II "M_SYSTEM_METEOR_II"
42 #define VTK_MIL_METEOR_II_DIG "M_SYSTEM_METEOR_II_DIG"
43 #define VTK_MIL_METEOR_II_CL "M_SYSTEM_METEOR_II_CL"
44 #define VTK_MIL_METEOR_II_1394 "M_SYSTEM_METEOR_II_1394"
45 #define VTK_MIL_CORONA "M_SYSTEM_CORONA"
46 #define VTK_MIL_CORONA_II "M_SYSTEM_CORONA_II"
47 #define VTK_MIL_PULSAR "M_SYSTEM_PULSAR"
48 #define VTK_MIL_GENESIS "M_SYSTEM_GENESIS"
49 #define VTK_MIL_GENESIS_PLUS "M_SYSTEM_GENESIS_PLUS"
50 #define VTK_MIL_ORION "M_SYSTEM_ORION"
51 #define VTK_MIL_CRONOS "M_SYSTEM_CRONOS"
52 #define VTK_MIL_ODYSSEY "M_SYSTEM_ODYSSEY"
53 
54 // video inputs:
55 #define VTK_MIL_MONO 0
56 #define VTK_MIL_COMPOSITE 1
57 #define VTK_MIL_YC 2
58 #define VTK_MIL_RGB 3
59 #define VTK_MIL_DIGITAL 4
60 
61 // video formats:
62 #define VTK_MIL_RS170 0
63 #define VTK_MIL_NTSC 1
64 #define VTK_MIL_CCIR 2
65 #define VTK_MIL_PAL 3
66 #define VTK_MIL_SECAM 4
67 #define VTK_MIL_NONSTANDARD 5
68 
69 class VTKIOVIDEO_EXPORT vtkMILVideoSource : public vtkVideoSource
70 {
71 public:
72  static vtkMILVideoSource *New();
74  void PrintSelf(ostream& os, vtkIndent indent);
75 
79  void Record() override;
80 
84  void Play() override;
85 
89  void Stop() override;
90 
94  void Grab() override;
95 
99  void SetFrameSize(int x, int y, int z) override;
100 
104  void SetOutputFormat(int format) override;
105 
107 
110  virtual void SetVideoChannel(int channel);
111  vtkGetMacro(VideoChannel, int);
113 
115 
118  virtual void SetVideoFormat(int format);
119  void SetVideoFormatToNTSC() { this->SetVideoFormat(VTK_MIL_NTSC); };
120  void SetVideoFormatToPAL() { this->SetVideoFormat(VTK_MIL_PAL); };
121  void SetVideoFormatToSECAM() { this->SetVideoFormat(VTK_MIL_SECAM); };
122  void SetVideoFormatToRS170() { this->SetVideoFormat(VTK_MIL_RS170); };
123  void SetVideoFormatToCCIR() { this->SetVideoFormat(VTK_MIL_CCIR); };
125  this->SetVideoFormat(VTK_MIL_NONSTANDARD); };
126  vtkGetMacro(VideoFormat,int);
128 
130 
133  virtual void SetVideoInput(int input);
134  void SetVideoInputToMono() { this->SetVideoInput(VTK_MIL_MONO); };
135  void SetVideoInputToComposite() {this->SetVideoInput(VTK_MIL_COMPOSITE);};
136  void SetVideoInputToYC() { this->SetVideoInput(VTK_MIL_YC); };
137  void SetVideoInputToRGB() { this->SetVideoInput(VTK_MIL_RGB); };
138  void SetVideoInputToDigital() { this->SetVideoInput(VTK_MIL_DIGITAL); };
139  vtkGetMacro(VideoInput,int);
141 
143 
150  virtual void SetContrastLevel(float contrast);
151  vtkGetMacro(ContrastLevel,float);
152  virtual void SetBrightnessLevel(float brightness);
153  vtkGetMacro(BrightnessLevel,float);
154  virtual void SetHueLevel(float hue);
155  vtkGetMacro(HueLevel,float);
156  virtual void SetSaturationLevel(float saturation);
157  vtkGetMacro(SaturationLevel,float);
159 
161 
165  virtual void SetBlackLevel(float value);
166  virtual float GetBlackLevel() {
167  return this->BlackLevel; };
168  virtual void SetWhiteLevel(float value);
169  virtual float GetWhiteLevel() {
170  return this->WhiteLevel; };
172 
174 
178  vtkSetStringMacro(MILSystemType);
179  vtkGetStringMacro(MILSystemType);
180  void SetMILSystemTypeToMeteor() { this->SetMILSystemType(VTK_MIL_METEOR); };
181  void SetMILSystemTypeToMeteorII() { this->SetMILSystemType(VTK_MIL_METEOR_II); };
182  void SetMILSystemTypeToMeteorIIDig() { this->SetMILSystemType(VTK_MIL_METEOR_II_DIG); };
183  void SetMILSystemTypeToMeteorIICL() { this->SetMILSystemType(VTK_MIL_METEOR_II_CL); };
184  void SetMILSystemTypeToMeteorII1394() { this->SetMILSystemType(VTK_MIL_METEOR_II_1394); };
185  void SetMILSystemTypeToCorona() { this->SetMILSystemType(VTK_MIL_CORONA); };
186  void SetMILSystemTypeToCoronaII() { this->SetMILSystemType(VTK_MIL_CORONA_II); };
187  void SetMILSystemTypeToPulsar() { this->SetMILSystemType(VTK_MIL_PULSAR); };
188  void SetMILSystemTypeToGenesis() { this->SetMILSystemType(VTK_MIL_GENESIS); };
189  void SetMILSystemTypeToGenesisPlus() { this->SetMILSystemType(VTK_MIL_GENESIS_PLUS); };
190  void SetMILSystemTypeToOrion() { this->SetMILSystemType(VTK_MIL_ORION); };
191  void SetMILSystemTypeToCronos() { this->SetMILSystemType(VTK_MIL_CRONOS); };
192  void SetMILSystemTypeToOdyssey() { this->SetMILSystemType(VTK_MIL_ODYSSEY); };
194 
195 
198  vtkSetMacro(MILSystemNumber,int);
199  vtkGetMacro(MILSystemNumber,int);
201 
203 
206  vtkSetStringMacro(MILDigitizerDCF);
207  vtkGetStringMacro(MILDigitizerDCF);
209 
211 
214  vtkSetMacro(MILDigitizerNumber,int);
215  vtkGetMacro(MILDigitizerNumber,int);
217 
219 
222  virtual void SetMILErrorMessages(int yesno);
223  vtkBooleanMacro(MILErrorMessages,int);
224  vtkGetMacro(MILErrorMessages,int);
226 
228 
231  vtkSetMacro(MILAppID,long);
232  vtkGetMacro(MILAppID,long);
233  vtkSetMacro(MILSysID,long);
234  vtkGetMacro(MILSysID,long);
235  vtkGetMacro(MILDigID,long);
236  vtkGetMacro(MILBufID,long);
238 
243  void Initialize() override;
244 
249  void ReleaseSystemResources() override;
250 
252 
259  void InternalGrab() override;
261 
262 protected:
265 
266  virtual void AllocateMILDigitizer();
267  virtual void AllocateMILBuffer();
268 
269  virtual char *MILInterpreterForSystem(const char *system);
271 
276 
279  float HueLevel;
281 
282  float BlackLevel;
283  float WhiteLevel;
284 
285  int FrameMaxSize[2];
286 
287  long MILAppID;
288  long MILSysID;
289  long MILDigID;
290  long MILBufID;
291  // long MILDispBufID;
292  // long MILDispID;
293 
296 
299 
301 
304 
306 
313  double CreateTimeStampForFrame(unsigned long frame);
314 
316  unsigned long LastFrameCount;
319 
320 private:
321  vtkMILVideoSource(const vtkMILVideoSource&) = delete;
322  void operator=(const vtkMILVideoSource&) = delete;
323 };
324 
325 #endif
vtkMILVideoSource::EstimatedFramePeriod
double EstimatedFramePeriod
Definition: vtkMILVideoSource.h:317
vtkMILVideoSource::SetVideoFormatToNTSC
void SetVideoFormatToNTSC()
Definition: vtkMILVideoSource.h:119
VTK_MIL_PULSAR
#define VTK_MIL_PULSAR
Definition: vtkMILVideoSource.h:47
vtkMILVideoSource::VideoInputForColor
int VideoInputForColor
Definition: vtkMILVideoSource.h:274
vtkVideoSource::Play
virtual void Play()
Play through the 'tape' sequentially at the specified frame rate.
vtkMILVideoSource::MILSysID
long MILSysID
Definition: vtkMILVideoSource.h:288
vtkMILVideoSource::SetMILSystemTypeToGenesisPlus
void SetMILSystemTypeToGenesisPlus()
Definition: vtkMILVideoSource.h:189
vtkMILVideoSource::SetVideoInputToComposite
void SetVideoInputToComposite()
Definition: vtkMILVideoSource.h:135
vtkMILVideoSource::SetMILSystemTypeToPulsar
void SetMILSystemTypeToPulsar()
Definition: vtkMILVideoSource.h:187
vtkVideoSource::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
VTK_MIL_YC
#define VTK_MIL_YC
Definition: vtkMILVideoSource.h:57
vtkMILVideoSource::SetMILSystemTypeToMeteorIIDig
void SetMILSystemTypeToMeteorIIDig()
Definition: vtkMILVideoSource.h:182
vtkMILVideoSource::SetMILSystemTypeToCronos
void SetMILSystemTypeToCronos()
Definition: vtkMILVideoSource.h:191
vtkX3D::value
Definition: vtkX3D.h:220
VTK_MIL_METEOR_II
#define VTK_MIL_METEOR_II
Definition: vtkMILVideoSource.h:41
vtkMILVideoSource::FatalMILError
int FatalMILError
Definition: vtkMILVideoSource.h:305
VTK_MIL_PAL
#define VTK_MIL_PAL
Definition: vtkMILVideoSource.h:65
vtkMILVideoSource::MILSystemNumber
int MILSystemNumber
Definition: vtkMILVideoSource.h:295
vtkMILVideoSource::BlackLevel
float BlackLevel
Definition: vtkMILVideoSource.h:282
vtkVideoSource::InternalGrab
virtual void InternalGrab()
The internal function which actually does the grab.
vtkMILVideoSource::LastTimeStamp
double LastTimeStamp
Definition: vtkMILVideoSource.h:315
vtkMILVideoSource::SetMILSystemTypeToMeteorIICL
void SetMILSystemTypeToMeteorIICL()
Definition: vtkMILVideoSource.h:183
VTK_MIL_METEOR_II_1394
#define VTK_MIL_METEOR_II_1394
Definition: vtkMILVideoSource.h:44
VTK_MIL_RS170
#define VTK_MIL_RS170
Definition: vtkMILVideoSource.h:62
vtkVideoSource.h
vtkMILVideoSource::SaturationLevel
float SaturationLevel
Definition: vtkMILVideoSource.h:280
vtkMILVideoSource::SetMILSystemTypeToGenesis
void SetMILSystemTypeToGenesis()
Definition: vtkMILVideoSource.h:188
vtkMILVideoSource::FrameCounter
int FrameCounter
Definition: vtkMILVideoSource.h:257
VTK_MIL_SECAM
#define VTK_MIL_SECAM
Definition: vtkMILVideoSource.h:66
vtkMILVideoSource::ContrastLevel
float ContrastLevel
Definition: vtkMILVideoSource.h:277
vtkMILVideoSource::MILInterpreterDLL
char * MILInterpreterDLL
Definition: vtkMILVideoSource.h:270
VTK_MIL_COMPOSITE
#define VTK_MIL_COMPOSITE
Definition: vtkMILVideoSource.h:56
VTK_MIL_METEOR_II_CL
#define VTK_MIL_METEOR_II_CL
Definition: vtkMILVideoSource.h:43
vtkMILVideoSource::OldUserDataPtr
void * OldUserDataPtr
Definition: vtkMILVideoSource.h:256
vtkMILVideoSource::SetVideoInputToRGB
void SetVideoInputToRGB()
Definition: vtkMILVideoSource.h:137
VTK_MIL_CRONOS
#define VTK_MIL_CRONOS
Definition: vtkMILVideoSource.h:51
vtkMILVideoSource::SetMILSystemTypeToCorona
void SetMILSystemTypeToCorona()
Definition: vtkMILVideoSource.h:185
vtkVideoSource::Stop
virtual void Stop()
Stop recording or playing.
VTK_MIL_RGB
#define VTK_MIL_RGB
Definition: vtkMILVideoSource.h:58
vtkMILVideoSource::SetVideoInputToMono
void SetVideoInputToMono()
Definition: vtkMILVideoSource.h:134
vtkMILVideoSource::SetVideoInputToDigital
void SetVideoInputToDigital()
Definition: vtkMILVideoSource.h:138
vtkMILVideoSource::SetMILSystemTypeToMeteorII1394
void SetMILSystemTypeToMeteorII1394()
Definition: vtkMILVideoSource.h:184
VTK_MIL_ORION
#define VTK_MIL_ORION
Definition: vtkMILVideoSource.h:50
VTK_MIL_GENESIS
#define VTK_MIL_GENESIS
Definition: vtkMILVideoSource.h:48
vtkMILVideoSource
Matrox Imaging Library frame grabbers.
Definition: vtkMILVideoSource.h:69
vtkMILVideoSource::VideoInput
int VideoInput
Definition: vtkMILVideoSource.h:273
VTK_MIL_GENESIS_PLUS
#define VTK_MIL_GENESIS_PLUS
Definition: vtkMILVideoSource.h:49
vtkMILVideoSource::SetMILSystemTypeToMeteorII
void SetMILSystemTypeToMeteorII()
Definition: vtkMILVideoSource.h:181
VTK_MIL_MONO
#define VTK_MIL_MONO
Definition: vtkMILVideoSource.h:55
vtkMILVideoSource::GetBlackLevel
virtual float GetBlackLevel()
Definition: vtkMILVideoSource.h:166
vtkMILVideoSource::VideoFormat
int VideoFormat
Definition: vtkMILVideoSource.h:275
vtkVideoSource::ReleaseSystemResources
virtual void ReleaseSystemResources()
Release the video driver.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkMILVideoSource::ForceGrab
int ForceGrab
Definition: vtkMILVideoSource.h:258
vtkMILVideoSource::SetVideoInputToYC
void SetVideoInputToYC()
Definition: vtkMILVideoSource.h:136
VTK_MIL_CCIR
#define VTK_MIL_CCIR
Definition: vtkMILVideoSource.h:64
vtkMILVideoSource::MILSysInternallyAllocated
int MILSysInternallyAllocated
Definition: vtkMILVideoSource.h:303
vtkMILVideoSource::SetMILSystemTypeToCoronaII
void SetMILSystemTypeToCoronaII()
Definition: vtkMILVideoSource.h:186
vtkVideoSource::New
static vtkVideoSource * New()
vtkMILVideoSource::MILErrorMessages
int MILErrorMessages
Definition: vtkMILVideoSource.h:300
VTK_MIL_NONSTANDARD
#define VTK_MIL_NONSTANDARD
Definition: vtkMILVideoSource.h:67
vtkMILVideoSource::SetVideoFormatToRS170
void SetVideoFormatToRS170()
Definition: vtkMILVideoSource.h:122
vtkVideoSource::SetOutputFormat
virtual void SetOutputFormat(int format)
Set the output format.
vtkMILVideoSource::SetMILSystemTypeToOdyssey
void SetMILSystemTypeToOdyssey()
Definition: vtkMILVideoSource.h:192
vtkVideoSource::Grab
virtual void Grab()
Grab a single video frame.
vtkMILVideoSource::HueLevel
float HueLevel
Definition: vtkMILVideoSource.h:279
VTK_MIL_DIGITAL
#define VTK_MIL_DIGITAL
Definition: vtkMILVideoSource.h:59
vtkMILVideoSource::LastFrameCount
unsigned long LastFrameCount
Definition: vtkMILVideoSource.h:316
VTK_MIL_NTSC
#define VTK_MIL_NTSC
Definition: vtkMILVideoSource.h:63
vtkMILVideoSource::OldHookFunction
void * OldHookFunction
For internal use only.
Definition: vtkMILVideoSource.h:255
vtkMILVideoSource::SetVideoFormatToCCIR
void SetVideoFormatToCCIR()
Definition: vtkMILVideoSource.h:123
vtkMILVideoSource::GetWhiteLevel
virtual float GetWhiteLevel()
Definition: vtkMILVideoSource.h:169
VTK_MIL_METEOR
#define VTK_MIL_METEOR
Definition: vtkMILVideoSource.h:40
vtkMILVideoSource::VideoChannel
int VideoChannel
Definition: vtkMILVideoSource.h:272
vtkMILVideoSource::SetMILSystemTypeToOrion
void SetMILSystemTypeToOrion()
Definition: vtkMILVideoSource.h:190
vtkMILVideoSource::SetVideoFormatToPAL
void SetVideoFormatToPAL()
Definition: vtkMILVideoSource.h:120
vtkMILVideoSource::MILSystemType
char * MILSystemType
Definition: vtkMILVideoSource.h:294
vtkMILVideoSource::MILDigID
long MILDigID
Definition: vtkMILVideoSource.h:289
VTK_MIL_METEOR_II_DIG
#define VTK_MIL_METEOR_II_DIG
Definition: vtkMILVideoSource.h:42
vtkMILVideoSource::MILBufID
long MILBufID
Definition: vtkMILVideoSource.h:290
vtkVideoSource::SetFrameSize
virtual void SetFrameSize(int x, int y, int z)
Set the full-frame size.
vtkMILVideoSource::SetVideoFormatToNonStandard
void SetVideoFormatToNonStandard()
Definition: vtkMILVideoSource.h:124
vtkVideoSource::Record
virtual void Record()
Record incoming video at the specified FrameRate.
vtkMILVideoSource::SetMILSystemTypeToMeteor
void SetMILSystemTypeToMeteor()
Definition: vtkMILVideoSource.h:180
vtkMILVideoSource::MILAppInternallyAllocated
int MILAppInternallyAllocated
Definition: vtkMILVideoSource.h:302
vtkMILVideoSource::WhiteLevel
float WhiteLevel
Definition: vtkMILVideoSource.h:283
vtkMILVideoSource::MILAppID
long MILAppID
Definition: vtkMILVideoSource.h:287
VTK_MIL_ODYSSEY
#define VTK_MIL_ODYSSEY
Definition: vtkMILVideoSource.h:52
VTK_MIL_CORONA
#define VTK_MIL_CORONA
Definition: vtkMILVideoSource.h:45
vtkMILVideoSource::SetVideoFormatToSECAM
void SetVideoFormatToSECAM()
Definition: vtkMILVideoSource.h:121
vtkVideoSource::Initialize
virtual void Initialize()
Initialize the hardware.
VTK_MIL_CORONA_II
#define VTK_MIL_CORONA_II
Definition: vtkMILVideoSource.h:46
vtkMILVideoSource::MILDigitizerDCF
char * MILDigitizerDCF
Definition: vtkMILVideoSource.h:298
vtkMILVideoSource::NextFramePeriod
double NextFramePeriod
Definition: vtkMILVideoSource.h:318
vtkMILVideoSource::BrightnessLevel
float BrightnessLevel
Definition: vtkMILVideoSource.h:278
vtkVideoSource
Superclass of video input devices for VTK.
Definition: vtkVideoSource.h:43
vtkMILVideoSource::MILDigitizerNumber
int MILDigitizerNumber
Definition: vtkMILVideoSource.h:297