VR-Forces 4.8 Class Documentation
 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
makVrv::DtEncoderIO Class Reference

The EncoderIO class is responsible to initialize CUDA and NVidia encoder then will be responsible to submit the Pixel Buffer Object to the GPU for encoding. More...

Public Member Functions

 DtEncoderIO ()
 CTOR. More...
 
virtual ~DtEncoderIO ()
 DTOR. More...
 
void deinitialize ()
 Shutdown all (CUDA / NVIDIA encoder) More...
 
bool initialize (DtDe *theDe, const osg::ref_ptr< osg::Image > &image, unsigned int frameRate, const std::string &encodingFormat)
 Initialize all (CUDA / NVIDIA encoder) More...
 
void submitPBO (unsigned int pboId, osg::ref_ptr< osg::Image > &image, DtReadFramebufferProcessData &fbData, unsigned int frameRate)
 Submit Pixel Buffer Object. More...
 

Protected Member Functions

void deinitCUDA ()
 Shutdown CUDA. More...
 
bool initCUDA (const osg::ref_ptr< osg::Image > &image, unsigned int frameRate)
 Initialize CUDA. More...
 
void deinitNVidiaEncoder ()
 Shutdown NVIDIA encoder. More...
 
bool initNVidiaEncoder (const osg::ref_ptr< osg::Image > &image, unsigned int frameRate)
 Initialize NVIDIA encoder. More...
 
void unmapDeviceBuffer ()
 Unmap CUDA buffer. More...
 

Protected Attributes

int myCudaDeviceId
 CUDA device ID use for the encoding. More...
 
int myHcuDevice
 CUDA device handle. More...
 
CUcontext myHcuContext
 CUDA device context. More...
 
EncodeBuffer myEncodeBuffer [MAX_ENCODE_QUEUE]
 Encoder buffer. More...
 
DtNvQueue< EncodeBuffermyEncodeBufferQueue
 Encoding queue. More...
 
void * myNVEncoder
 encoding pointer More...
 
uint64_t myEncodeIdx
 encoding index More...
 
CUdeviceptr myCUDATempDevicePtr
 Temp buffer on CUDA device. More...
 
unsigned int myCUDATempDeviceSize
 CUDATempDevicePtr size. More...
 
uint32_t myTempStride
 Temp buffer on CUDA device. More...
 
unsigned int myFrameRate
 Frame Rate. More...
 
DtDemyDe
 Copy of the DtDe. More...
 
std::string myEncodingFormat
 Encoding Data format. More...
 
void * myDeviceBufferPtr
 CUDA resource pointer for PBO. More...
 
unsigned int myPboId
 Current PBO Id. More...
 
cudaGraphicsResource * myDeviceBufferResource
 Current CUDA resource. More...
 

Detailed Description

The EncoderIO class is responsible to initialize CUDA and NVidia encoder then will be responsible to submit the Pixel Buffer Object to the GPU for encoding.

Constructor & Destructor Documentation

makVrv::DtEncoderIO::DtEncoderIO ( )

CTOR.

virtual makVrv::DtEncoderIO::~DtEncoderIO ( )
virtual

DTOR.

Member Function Documentation

void makVrv::DtEncoderIO::deinitialize ( )

Shutdown all (CUDA / NVIDIA encoder)

bool makVrv::DtEncoderIO::initialize ( DtDe theDe,
const osg::ref_ptr< osg::Image > &  image,
unsigned int  frameRate,
const std::string &  encodingFormat 
)

Initialize all (CUDA / NVIDIA encoder)

void makVrv::DtEncoderIO::submitPBO ( unsigned int  pboId,
osg::ref_ptr< osg::Image > &  image,
DtReadFramebufferProcessData fbData,
unsigned int  frameRate 
)

Submit Pixel Buffer Object.

void makVrv::DtEncoderIO::deinitCUDA ( )
protected

Shutdown CUDA.

bool makVrv::DtEncoderIO::initCUDA ( const osg::ref_ptr< osg::Image > &  image,
unsigned int  frameRate 
)
protected

Initialize CUDA.

void makVrv::DtEncoderIO::deinitNVidiaEncoder ( )
protected

Shutdown NVIDIA encoder.

bool makVrv::DtEncoderIO::initNVidiaEncoder ( const osg::ref_ptr< osg::Image > &  image,
unsigned int  frameRate 
)
protected

Initialize NVIDIA encoder.

void makVrv::DtEncoderIO::unmapDeviceBuffer ( )
protected

Unmap CUDA buffer.

Member Data Documentation

int makVrv::DtEncoderIO::myCudaDeviceId
protected

CUDA device ID use for the encoding.

int makVrv::DtEncoderIO::myHcuDevice
protected

CUDA device handle.

CUcontext makVrv::DtEncoderIO::myHcuContext
protected

CUDA device context.

EncodeBuffer makVrv::DtEncoderIO::myEncodeBuffer[MAX_ENCODE_QUEUE]
protected

Encoder buffer.

DtNvQueue<EncodeBuffer> makVrv::DtEncoderIO::myEncodeBufferQueue
protected

Encoding queue.

void* makVrv::DtEncoderIO::myNVEncoder
protected

encoding pointer

uint64_t makVrv::DtEncoderIO::myEncodeIdx
protected

encoding index

CUdeviceptr makVrv::DtEncoderIO::myCUDATempDevicePtr
protected

Temp buffer on CUDA device.

unsigned int makVrv::DtEncoderIO::myCUDATempDeviceSize
protected

CUDATempDevicePtr size.

uint32_t makVrv::DtEncoderIO::myTempStride
protected

Temp buffer on CUDA device.

unsigned int makVrv::DtEncoderIO::myFrameRate
protected

Frame Rate.

DtDe* makVrv::DtEncoderIO::myDe
protected

Copy of the DtDe.

std::string makVrv::DtEncoderIO::myEncodingFormat
protected

Encoding Data format.

void* makVrv::DtEncoderIO::myDeviceBufferPtr
protected

CUDA resource pointer for PBO.

unsigned int makVrv::DtEncoderIO::myPboId
protected

Current PBO Id.

cudaGraphicsResource* makVrv::DtEncoderIO::myDeviceBufferResource
protected

Current CUDA resource.


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

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)