15 #ifndef niftkNVidiaSDIDataSourceImpl_h
16 #define niftkNVidiaSDIDataSourceImpl_h
20 #include <QWaitCondition>
26 #include <opencv2/core/types_c.h>
81 int GetRGBAImage(
unsigned int sequencenumber, IplImage* targetbuffer);
107 void SetPlayback(
bool on,
int expectedstreamcount = 0);
127 void DoCompressFrame(
unsigned int sequencenumber,
unsigned int* frameindex);
129 void DoGetRGBAImage(
unsigned int sequencenumber, IplImage**
img,
unsigned int* streamcount);
130 void DoTryPlayback(
const char* filename,
bool* ok,
const char** errormsg);
139 void SignalCompress(
unsigned int sequencenumber,
unsigned int* frameindex);
158 void ReadbackRGBA(
char*
buffer, std::size_t bufferpitch,
int width,
int height,
int slot);
163 void ReadbackViaPBO(
char*
buffer, std::size_t bufferpitch,
int width,
int height,
int slot);
165 void DecompressRGBA(
unsigned int sequencenumber, IplImage**
img,
unsigned int* streamcountinimg);
190 const char* wireformat;
204 struct SequenceNumberComparator
210 std::map<video::FrameInfo, int, SequenceNumberComparator> sn2slot_map;
212 std::map<int, video::FrameInfo> slot2sn_map;
219 DWORD m_LastSuccessfulFrame;
222 unsigned int m_NumFramesCompressed;
228 unsigned int m_Cookie;
235 std::vector<int> m_ReadbackPBOs;
void SignalStopCompression()
void SetPlayback(bool on, int expectedstreamcount=0)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1082
void DoStopCompression()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1059
Definition: compress.h:78
bool DumpNALIndex() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1143
virtual void OnTimeoutImpl()
Derived classes implement this.
Definition: niftkNVidiaSDIDataSourceImpl.cxx:620
Definition: niftkNVidiaSDIDataSourceImpl.h:46
video::StreamFormat GetFormat() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:459
video::FrameInfo GetNextSequenceNumber(unsigned int ihavealready) const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:438
void TryPlayback(const std::string &filename)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1253
void SetFieldMode(video::SDIInput::InterlacedBehaviour mode)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:504
GLenum mode
Definition: glew.h:2404
Definition: decompress.h:47
GLdouble GLdouble GLdouble b
Definition: glew.h:7885
void DoGetRGBAImage(unsigned int sequencenumber, IplImage **img, unsigned int *streamcount)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:885
GLuint GLuint stream
Definition: glew.h:6079
std::string GetStateMessage() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:528
std::pair< int, int > GetCaptureFormat() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:476
void Reset()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:810
Definition: niftkNVidiaSDIDataSourceImpl.h:49
GLboolean GLboolean GLboolean GLboolean a
Definition: glew.h:8272
void SignalFatalError(QString msg)
void DoCompressFrame(unsigned int sequencenumber, unsigned int *frameindex)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:953
void SignalTryPlayback(const char *filename, bool *ok, const char **errormsg)
bool HasInput() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:414
~NVidiaSDIDataSourceImpl()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:149
GLuint buffer
Definition: glew.h:1664
void SignalCompress(unsigned int sequencenumber, unsigned int *frameindex)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: glew.h:1238
Definition: niftkNVidiaSDIDataSourceImpl.h:44
NVidiaSDIDataSourceImpl()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:73
void StopCompression()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1075
CaptureState
Definition: niftkNVidiaSDIDataSourceImpl.h:42
bool IsRunning() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:398
CaptureState GetCaptureState() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:520
Definition: niftkNVidiaSDIDataSourceImpl.h:47
GLint GLint GLint GLint GLint GLint GLsizei GLsizei height
Definition: glew.h:1236
GLuint const GLchar * name
Definition: glew.h:1798
std::string GetCompressionOutputFilename() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:536
virtual void run()
Override the QThread run method to start the thread.
Definition: niftkNVidiaSDIDataSourceImpl.cxx:552
void DoWakeUp()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:613
video::SDIInput::InterlacedBehaviour GetFieldMode() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:512
int GetStreamCount() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:496
GLint GLvoid * img
Definition: glew.h:1369
int GetTextureId(unsigned int stream) const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:484
Definition: niftkNVidiaSDIDataSourceImpl.h:48
void SignalGetRGBAImage(unsigned int sequencenumber, IplImage **img, unsigned int *streamcount)
unsigned int CompressFrame(unsigned int sequencenumber)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1050
Definition: niftkNVidiaSDIDataSourceImpl.h:36
GLint GLint GLint GLint GLint GLint GLsizei width
Definition: glew.h:1236
QGLWidget * GetCaptureContext()
Definition: niftkNVidiaSDIDataSourceImpl.cxx:467
const char * GetWireFormatString() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:430
int GetRGBAImage(unsigned int sequencenumber, IplImage *targetbuffer)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:941
void DoTryPlayback(const char *filename, bool *ok, const char **errormsg)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:1176
unsigned int GetCookie() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:422
Base class for threads that are simply triggered off of a QTimer.
Definition: niftkIGITimerBasedThread.h:32
Definition: niftkExceptionObject.h:21
bool HasHardware() const
Definition: niftkNVidiaSDIDataSourceImpl.cxx:406
GLsizei const GLcharARB ** string
Definition: glew.h:5194
void setCompressionOutputFilename(const std::string &name)
Definition: niftkNVidiaSDIDataSourceImpl.cxx:544
Definition: niftkNVidiaSDIDataSourceImpl.h:45