Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CUDMABufferObject Class Reference

#include <UDMABufferObject.h>

Inheritance diagram for CUDMABufferObject:
CBufferObject IBufferObject

Public Member Functions

 CUDMABufferObject ()=default
 
virtual ~CUDMABufferObject () override
 
bool CreateBufferObject (uint32_t format, uint32_t width, uint32_t height) override
 Create a BufferObject based on the format, width, and height of the desired buffer.
 
bool CreateBufferObject (uint64_t size) override
 Create a BufferObject based only on the size of the desired buffer. Not all CBufferObject implementations may support this. This method is required for use with the CAddonVideoCodec as it only knows the decoded buffer size.
 
void DestroyBufferObject () override
 Destroy a BufferObject.
 
uint8_tGetMemory () override
 Get the Memory location of the BufferObject. This method needs to be called to be able to copy data into the BufferObject.
 
void ReleaseMemory () override
 Release the mapped memory of the BufferObject. After calling this the memory location pointed to by GetMemory() will be invalid.
 
std::string GetName () const override
 Get the Name of the BufferObject type in use.
 
- Public Member Functions inherited from CBufferObject
int GetFd () override
 Get the File Descriptor of the BufferObject. The fd is guaranteed to be available after calling CreateBufferObject().
 
uint32_t GetStride () override
 Get the Stride of the BufferObject. The stride is guaranteed to be available after calling GetMemory().
 
uint64_t GetModifier () override
 Get the Modifier of the BufferObject. Format Modifiers further describe the buffer's format such as for tiling or compression. see https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h.
 
void SyncStart () override
 Must be called before reading/writing data to the BufferObject.
 
void SyncEnd () override
 Must be called after reading/writing data to the BufferObject.
 
- Public Member Functions inherited from IBufferObject
virtual ~IBufferObject ()=default
 

Static Public Member Functions

static std::unique_ptr< CBufferObjectCreate ()
 
static void Register ()
 
- Static Public Member Functions inherited from CBufferObject
static std::unique_ptr< CBufferObjectGetBufferObject (bool needsCreateBySize)
 Get a BufferObject from CBufferObjectFactory.
 

Additional Inherited Members

- Protected Attributes inherited from CBufferObject
int m_fd {-1}
 
uint32_t m_stride {0}
 

Constructor & Destructor Documentation

◆ CUDMABufferObject()

CUDMABufferObject::CUDMABufferObject ( )
default

◆ ~CUDMABufferObject()

CUDMABufferObject::~CUDMABufferObject ( )
overridevirtual

Member Function Documentation

◆ Create()

std::unique_ptr< CBufferObject > CUDMABufferObject::Create ( )
static

◆ CreateBufferObject() [1/2]

bool CUDMABufferObject::CreateBufferObject ( uint32_t format,
uint32_t width,
uint32_t height )
overridevirtual

Create a BufferObject based on the format, width, and height of the desired buffer.

Parameters
formatframebuffer pixel formats are described using the fourcc codes defined in https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h
widthwidth of the requested buffer.
heightheight of the requested buffer.
Returns
true BufferObject creation was successful.
false BufferObject creation was unsuccessful.

Implements CBufferObject.

◆ CreateBufferObject() [2/2]

bool CUDMABufferObject::CreateBufferObject ( uint64_t size)
overridevirtual

Create a BufferObject based only on the size of the desired buffer. Not all CBufferObject implementations may support this. This method is required for use with the CAddonVideoCodec as it only knows the decoded buffer size.

Parameters
sizeof the requested buffer.
Returns
true BufferObject creation was successful.
false BufferObject creation was unsuccessful.

Reimplemented from CBufferObject.

◆ DestroyBufferObject()

void CUDMABufferObject::DestroyBufferObject ( )
overridevirtual

Destroy a BufferObject.

Implements IBufferObject.

◆ GetMemory()

uint8_t * CUDMABufferObject::GetMemory ( )
overridevirtual

Get the Memory location of the BufferObject. This method needs to be called to be able to copy data into the BufferObject.

Returns
uint8_t* pointer to the memory location of the BufferObject.

Implements IBufferObject.

◆ GetName()

std::string CUDMABufferObject::GetName ( ) const
inlineoverridevirtual

Get the Name of the BufferObject type in use.

Returns
std::string name of the BufferObject type in use

Implements IBufferObject.

◆ Register()

void CUDMABufferObject::Register ( )
static

◆ ReleaseMemory()

void CUDMABufferObject::ReleaseMemory ( )
overridevirtual

Release the mapped memory of the BufferObject. After calling this the memory location pointed to by GetMemory() will be invalid.

Implements IBufferObject.


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