Kodi Development 22.0
for Binary and Script based Add-Ons
 
Loading...
Searching...
No Matches
Definitions, structures and enumerators

Detailed Description

Video codec add-on general variables

Used to exchange the available options between Kodi and addon.

Topics

 class VideoCodecInitdata
 Initialization data to open a video codec stream.
 
 struct VIDEOCODEC_PICTURE
 Data structure which is given to the addon when a decoding call is made.
 
 DRM PRIME frame descriptor
 DRM-native multi-planar DMA-BUF descriptor.
 
 struct VIDEOCODEC_PLATFORM_BUFFER
 Native buffer descriptor returned by kodi::addon::CInstanceVideoCodec::GetFrameBufferPlatformHandle.
 

Enumeration Type Documentation

◆ VIDEOCODEC_RETVAL

Changes since 2.1.0 (ABI 2.2.0)

Return values used by video decoder interface

Enumerator
VC_NONE 

Noop.

VC_ERROR 

An error occurred, no other messages will be returned.

VC_BUFFER 

The decoder needs more data.

VC_PICTURE 

The decoder got a picture.

VC_EOF 

The decoder signals EOF.

◆ VIDEOCODEC_PLATFORM_BUFFER_TYPE

Platform-native buffer type, used to identify the meaning of the handle field in VIDEOCODEC_PLATFORM_BUFFER.

Returned by kodi::addon::CInstanceVideoCodec::GetFrameBufferPlatformHandle so addons can render directly into the underlying GPU/hardware buffer without going through CPU memory.

Enumerator
VIDEOCODEC_PLATFORM_BUFFER_NONE 

No native handle available, addon must use the CPU-mapped pointer in VIDEOCODEC_PICTURE::decodedData.

VIDEOCODEC_PLATFORM_BUFFER_DRM_PRIME 

Linux DMA-BUF. handle points at a KODI_DRM_FRAME_DESCRIPTOR which carries DMA-BUF fd(s), DRM fourcc, modifier, and per-plane offsets/pitches. All fields are native DRM types (from <drm_fourcc.h>); no ffmpeg/libavutil dependency required.

VIDEOCODEC_PLATFORM_BUFFER_D3D11_TEXTURE 

Windows D3D11. handle is ID3D11Texture2D*. Reserved – not implemented yet.

VIDEOCODEC_PLATFORM_BUFFER_IOSURFACE 

macOS/iOS. handle is IOSurfaceRef. Reserved – not implemented yet.

VIDEOCODEC_PLATFORM_BUFFER_AHARDWAREBUFFER 

Android. handle is AHardwareBuffer*. Reserved – not implemented yet.