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

#include <GBMBufferObject.h>

Inheritance diagram for CGBMBufferObject:
CBufferObject IBufferObject

Public Member Functions

 CGBMBufferObject ()
 
 ~CGBMBufferObject () 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.
 
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.
 
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.
 
- Public Member Functions inherited from CBufferObject
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.
 
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().
 
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

◆ CGBMBufferObject()

CGBMBufferObject::CGBMBufferObject ( )

◆ ~CGBMBufferObject()

CGBMBufferObject::~CGBMBufferObject ( )
override

Member Function Documentation

◆ Create()

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

◆ CreateBufferObject()

bool CGBMBufferObject::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.

◆ DestroyBufferObject()

void CGBMBufferObject::DestroyBufferObject ( )
overridevirtual

Destroy a BufferObject.

Implements IBufferObject.

◆ GetMemory()

uint8_t * CGBMBufferObject::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.

◆ GetModifier()

uint64_t CGBMBufferObject::GetModifier ( )
overridevirtual

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.

Returns
uint64_t modifier of the BufferObject. 0 means the layout is linear (default).

Reimplemented from CBufferObject.

◆ GetName()

std::string CGBMBufferObject::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 CGBMBufferObject::Register ( )
static

◆ ReleaseMemory()

void CGBMBufferObject::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: