VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrv::DtReadFramebufferCallback Class Reference

A DtReadFramebufferCallback instance is installed as the draw callback of the camera attached to the channel we wish to stream.

Inheritance diagram for makVrv::DtReadFramebufferCallback:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtReadFramebufferCallback ()
 
virtual void operator() (osg::RenderInfo &renderInfo) const
 
virtual void process (const std::vector< std::vector< uint8_t >> &encodedPackets)
 

Protected Member Functions

 DtReadFramebufferCallback (DtDe &de, DtVideoStream &stream, DtOsgChannel *channel)
 
virtual bool init ()
 
virtual void unInit ()
 
virtual void setupPixelBufferObjects (int numBuffers)
 
virtual bool createProcessImageTask (DtDe &de, const DtVideoStream &stream)
 
virtual bool setPixelFormatFromString (const DtUnicode &pxfString)
 
virtual bool setReadBufferFromString (const DtUnicode &rbString)
 
virtual bool setDataTypeFromString (const DtUnicode &dtString)
 
virtual void readPixels (osg::RenderInfo &renderInfo) const
 
virtual void readPixelsPbo (osg::RenderInfo &renderInfo) const
 
virtual
DtVideoStreamPostProcessor
findVideoStreamPostProcessor (void) const
 
virtual void registerPbosWithHardwareEncoderIfNecessary (void)
 

Protected Attributes

DtVideoStreammyStream
 
DtDemyDe
 
DtOsgChannelmyChannel
 
double myFrequency
 
bool myUseReadPixels
 
int myWidth
 
int myHeight
 
int myX
 
int myY
 
GLenum myPixelFormat
 
GLenum myDataType
 
GLenum myReadBuffer
 
std::vector< unsigned intmyPbos
 
int myMutableWriteIndex
 
int myMutableReadIndex
 
osg::ref_ptr< osg::Image > myImage
 
DtProcessImageTaskmyTask
 
bool myIsInitialized
 
bool myIsUsingHardware
 
bool myReadFromTexture
 
DtEncoderIOmyEncoderIO
 
DtReadFramebufferProcessData myProcessData
 
DtPostProcessManagermyPostProcessManager
 
int myId = 0
 
DtEncoderIOCallbackmyEncoderCallback = nullptr
 
double myTimeNextFrame = 0.0
 

Static Protected Attributes

static int theRunningId
 

Private Member Functions

 DtReadFramebufferCallback ()=delete
 
 DtReadFramebufferCallback (const DtReadFramebufferCallback &rhs)=delete
 
DtReadFramebufferCallbackoperator= (const DtReadFramebufferCallback &orig)=delete
 

Friends

class DtVideoStream
 

Constructor & Destructor Documentation

virtual makVrv::DtReadFramebufferCallback::~DtReadFramebufferCallback ( )
virtual

DTOR.

makVrv::DtReadFramebufferCallback::DtReadFramebufferCallback ( DtDe de,
DtVideoStream stream,
DtOsgChannel channel 
)
protected

CTOR.

makVrv::DtReadFramebufferCallback::DtReadFramebufferCallback ( )
privatedelete

Default CTOR (unimplemented)

makVrv::DtReadFramebufferCallback::DtReadFramebufferCallback ( const DtReadFramebufferCallback rhs)
privatedelete

Copy CTOR (unimplemented)

Member Function Documentation

virtual void makVrv::DtReadFramebufferCallback::operator() ( osg::RenderInfo &  renderInfo) const
virtual

Base class override. This is where the work happens.

virtual void makVrv::DtReadFramebufferCallback::process ( const std::vector< std::vector< uint8_t >> &  encodedPackets)
virtual

called indirectly from the hw encoder

virtual bool makVrv::DtReadFramebufferCallback::init ( )
protectedvirtual

Initialize the DtReadFramebufferCallback.

virtual void makVrv::DtReadFramebufferCallback::unInit ( )
protectedvirtual
virtual void makVrv::DtReadFramebufferCallback::setupPixelBufferObjects ( int  numBuffers)
protectedvirtual

Allocate and bind the pixel buffer objects.

virtual bool makVrv::DtReadFramebufferCallback::createProcessImageTask ( DtDe de,
const DtVideoStream stream 
)
protectedvirtual

Create and initialize a makVrv::DtProcessImageTask.

virtual bool makVrv::DtReadFramebufferCallback::setPixelFormatFromString ( const DtUnicode pxfString)
protectedvirtual

set the pixel format GL enum from an initializer string

virtual bool makVrv::DtReadFramebufferCallback::setReadBufferFromString ( const DtUnicode rbString)
protectedvirtual

set the read buffer GL enum from an initializer string

virtual bool makVrv::DtReadFramebufferCallback::setDataTypeFromString ( const DtUnicode dtString)
protectedvirtual

set the data type GL enum from an initializer string

virtual void makVrv::DtReadFramebufferCallback::readPixels ( osg::RenderInfo &  renderInfo) const
protectedvirtual

read frame buffer using glReadPixels (synchronous)

virtual void makVrv::DtReadFramebufferCallback::readPixelsPbo ( osg::RenderInfo &  renderInfo) const
protectedvirtual

read frame buffer using PBOs (asynchronous)

virtual DtVideoStreamPostProcessor* makVrv::DtReadFramebufferCallback::findVideoStreamPostProcessor ( void  ) const
protectedvirtual

helper

virtual void makVrv::DtReadFramebufferCallback::registerPbosWithHardwareEncoderIfNecessary ( void  )
protectedvirtual

helper

DtReadFramebufferCallback& makVrv::DtReadFramebufferCallback::operator= ( const DtReadFramebufferCallback orig)
privatedelete

Assignment operator (unimplemented)

Friends And Related Function Documentation

friend class DtVideoStream
friend

Only a DtVideoStream can construct a DtReadFramebufferCallback.

Member Data Documentation

DtVideoStream& makVrv::DtReadFramebufferCallback::myStream
protected

Current VideoStream.

DtDe& makVrv::DtReadFramebufferCallback::myDe
protected

Copy of the DtDe.

DtOsgChannel* makVrv::DtReadFramebufferCallback::myChannel
protected

Ptr to the Channel.

double makVrv::DtReadFramebufferCallback::myFrequency
protected

streaming frequency

bool makVrv::DtReadFramebufferCallback::myUseReadPixels
protected

if set to true use CPU encoding / false GPU encoding

int makVrv::DtReadFramebufferCallback::myWidth
protected

width of the image

int makVrv::DtReadFramebufferCallback::myHeight
protected

height of the image

int makVrv::DtReadFramebufferCallback::myX
protected

Position in X.

int makVrv::DtReadFramebufferCallback::myY
protected

Position in Y.

GLenum makVrv::DtReadFramebufferCallback::myPixelFormat
protected

Pixel format used.

GLenum makVrv::DtReadFramebufferCallback::myDataType
protected

Data type format.

GLenum makVrv::DtReadFramebufferCallback::myReadBuffer
protected

GL buffer used (back/front)

std::vector<unsigned int> makVrv::DtReadFramebufferCallback::myPbos
protected

Pixel Buffer Object.

int makVrv::DtReadFramebufferCallback::myMutableWriteIndex
mutableprotected

Write buffer index.

int makVrv::DtReadFramebufferCallback::myMutableReadIndex
mutableprotected

Read buffer index.

osg::ref_ptr<osg::Image> makVrv::DtReadFramebufferCallback::myImage
protected

Image pointer.

DtProcessImageTask* makVrv::DtReadFramebufferCallback::myTask
protected

Image processing task.

bool makVrv::DtReadFramebufferCallback::myIsInitialized
protected

is everything initialized

bool makVrv::DtReadFramebufferCallback::myIsUsingHardware
protected

Are using hardware encoding.

bool makVrv::DtReadFramebufferCallback::myReadFromTexture
protected
DtEncoderIO* makVrv::DtReadFramebufferCallback::myEncoderIO
protected

hardware encoding IO object

DtReadFramebufferProcessData makVrv::DtReadFramebufferCallback::myProcessData
protected

hardware frame buffer data

DtPostProcessManager& makVrv::DtReadFramebufferCallback::myPostProcessManager
protected

de-reference

int makVrv::DtReadFramebufferCallback::myId = 0
protected
int makVrv::DtReadFramebufferCallback::theRunningId
staticprotected
DtEncoderIOCallback* makVrv::DtReadFramebufferCallback::myEncoderCallback = nullptr
protected
double makVrv::DtReadFramebufferCallback::myTimeNextFrame = 0.0
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)