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

#include <VAAPI.h>

Inheritance diagram for VAAPI::CDecoder:
IHardwareDecoder IDVDResourceCounted< IHardwareDecoder >

Public Member Functions

 CDecoder (CProcessInfo &processInfo)
 
 ~CDecoder () override
 
bool Open (AVCodecContext *avctx, AVCodecContext *mainctx, const enum AVPixelFormat) override
 
CDVDVideoCodec::VCReturn Decode (AVCodecContext *avctx, AVFrame *frame) override
 
bool GetPicture (AVCodecContext *avctx, VideoPicture *picture) override
 
void Reset () override
 
virtual void Close ()
 
long Release () override
 
bool CanSkipDeint () override
 
unsigned GetAllowedReferences () override
 
CDVDVideoCodec::VCReturn Check (AVCodecContext *avctx) override
 
const std::string Name () override
 
void SetCodecControl (int flags) override
 
void FFReleaseBuffer (uint8_t *data)
 
- Public Member Functions inherited from IHardwareDecoder
 IHardwareDecoder ()=default
 
 ~IHardwareDecoder () override=default
 
- Public Member Functions inherited from IDVDResourceCounted< IHardwareDecoder >
 IDVDResourceCounted ()
 
 IDVDResourceCounted (const IDVDResourceCounted &)=delete
 
virtual ~IDVDResourceCounted ()=default
 
IDVDResourceCountedoperator= (const IDVDResourceCounted &)=delete
 
virtual IHardwareDecoderAcquire ()
 

Static Public Member Functions

static int FFGetBuffer (AVCodecContext *avctx, AVFrame *pic, int flags)
 
static IHardwareDecoderCreate (CDVDStreamInfo &hint, CProcessInfo &processInfo, AVPixelFormat fmt)
 
static void Register (IVaapiWinSystem *winSystem, bool deepColor)
 

Static Public Attributes

static IVaapiWinSystemm_pWinSystem = nullptr
 

Protected Types

enum  EDisplayState { VAAPI_OPEN , VAAPI_RESET , VAAPI_LOST , VAAPI_ERROR }
 

Protected Member Functions

void SetWidthHeight (int width, int height)
 
bool ConfigVAAPI ()
 
bool CheckStatus (VAStatus vdp_st, int line)
 
void FiniVAAPIOutput ()
 
void ReturnRenderPicture (CVaapiRenderPicture *renderPic)
 
long ReleasePicReference ()
 
bool CheckSuccess (VAStatus status, const std::string &function)
 

Protected Attributes

enum VAAPI::CDecoder::EDisplayState m_DisplayState
 
CCriticalSection m_DecoderSection
 
CEvent m_DisplayEvent
 
int m_ErrorCount
 
bool m_vaapiConfigured
 
CVaapiConfig m_vaapiConfig
 
CVideoSurfaces m_videoSurfaces
 
int m_getBufferError
 
COutput m_vaapiOutput
 
CVaapiBufferStats m_bufferStats
 
CEvent m_inMsgEvent
 
CVaapiRenderPicturem_presentPicture = nullptr
 
int m_codecControl
 
CProcessInfom_processInfo
 

Static Protected Attributes

static bool m_capGeneral = false
 
static bool m_capDeepColor = false
 

Friends

class CVaapiBufferPool
 

Additional Inherited Members

- Public Attributes inherited from IDVDResourceCounted< IHardwareDecoder >
std::atomic< long > m_refs
 

Member Enumeration Documentation

◆ EDisplayState

Enumerator
VAAPI_OPEN 
VAAPI_RESET 
VAAPI_LOST 
VAAPI_ERROR 

Constructor & Destructor Documentation

◆ CDecoder()

CDecoder::CDecoder ( CProcessInfo & processInfo)
explicit

◆ ~CDecoder()

CDecoder::~CDecoder ( )
override

Member Function Documentation

◆ CanSkipDeint()

bool CDecoder::CanSkipDeint ( )
overridevirtual

Reimplemented from IHardwareDecoder.

◆ Check()

CDVDVideoCodec::VCReturn CDecoder::Check ( AVCodecContext * avctx)
overridevirtual

Implements IHardwareDecoder.

◆ CheckStatus()

bool VAAPI::CDecoder::CheckStatus ( VAStatus vdp_st,
int line )
protected

◆ CheckSuccess()

bool CDecoder::CheckSuccess ( VAStatus status,
const std::string & function )
protected

◆ Close()

void CDecoder::Close ( )
virtual

◆ ConfigVAAPI()

bool CDecoder::ConfigVAAPI ( )
protected

◆ Create()

IHardwareDecoder * CDecoder::Create ( CDVDStreamInfo & hint,
CProcessInfo & processInfo,
AVPixelFormat fmt )
static

◆ Decode()

CDVDVideoCodec::VCReturn CDecoder::Decode ( AVCodecContext * avctx,
AVFrame * frame )
overridevirtual

Implements IHardwareDecoder.

◆ FFGetBuffer()

int CDecoder::FFGetBuffer ( AVCodecContext * avctx,
AVFrame * pic,
int flags )
static

◆ FFReleaseBuffer()

void CDecoder::FFReleaseBuffer ( uint8_t * data)

◆ FiniVAAPIOutput()

void CDecoder::FiniVAAPIOutput ( )
protected

◆ GetAllowedReferences()

unsigned VAAPI::CDecoder::GetAllowedReferences ( )
inlineoverridevirtual

Reimplemented from IHardwareDecoder.

◆ GetPicture()

bool CDecoder::GetPicture ( AVCodecContext * avctx,
VideoPicture * picture )
overridevirtual

Implements IHardwareDecoder.

◆ Name()

const std::string VAAPI::CDecoder::Name ( )
inlineoverridevirtual

Implements IHardwareDecoder.

◆ Open()

bool CDecoder::Open ( AVCodecContext * avctx,
AVCodecContext * mainctx,
const enum AVPixelFormat fmt )
overridevirtual

Implements IHardwareDecoder.

◆ Register()

void CDecoder::Register ( IVaapiWinSystem * winSystem,
bool deepColor )
static

◆ Release()

long CDecoder::Release ( )
overridevirtual

◆ ReleasePicReference()

long CDecoder::ReleasePicReference ( )
protected

◆ Reset()

void CDecoder::Reset ( )
overridevirtual

Reimplemented from IHardwareDecoder.

◆ ReturnRenderPicture()

void CDecoder::ReturnRenderPicture ( CVaapiRenderPicture * renderPic)
protected

◆ SetCodecControl()

void CDecoder::SetCodecControl ( int flags)
overridevirtual

Reimplemented from IHardwareDecoder.

◆ SetWidthHeight()

void VAAPI::CDecoder::SetWidthHeight ( int width,
int height )
protected

Friends And Related Symbol Documentation

◆ CVaapiBufferPool

friend class CVaapiBufferPool
friend

Member Data Documentation

◆ m_bufferStats

CVaapiBufferStats VAAPI::CDecoder::m_bufferStats
protected

◆ m_capDeepColor

bool CDecoder::m_capDeepColor = false
staticprotected

◆ m_capGeneral

bool CDecoder::m_capGeneral = false
staticprotected

◆ m_codecControl

int VAAPI::CDecoder::m_codecControl
protected

◆ m_DecoderSection

CCriticalSection VAAPI::CDecoder::m_DecoderSection
protected

◆ m_DisplayEvent

CEvent VAAPI::CDecoder::m_DisplayEvent
protected

◆ m_DisplayState

enum VAAPI::CDecoder::EDisplayState VAAPI::CDecoder::m_DisplayState
protected

◆ m_ErrorCount

int VAAPI::CDecoder::m_ErrorCount
protected

◆ m_getBufferError

int VAAPI::CDecoder::m_getBufferError
protected

◆ m_inMsgEvent

CEvent VAAPI::CDecoder::m_inMsgEvent
protected

◆ m_presentPicture

CVaapiRenderPicture* VAAPI::CDecoder::m_presentPicture = nullptr
protected

◆ m_processInfo

CProcessInfo& VAAPI::CDecoder::m_processInfo
protected

◆ m_pWinSystem

IVaapiWinSystem * CDecoder::m_pWinSystem = nullptr
static

◆ m_vaapiConfig

CVaapiConfig VAAPI::CDecoder::m_vaapiConfig
protected

◆ m_vaapiConfigured

bool VAAPI::CDecoder::m_vaapiConfigured
protected

◆ m_vaapiOutput

COutput VAAPI::CDecoder::m_vaapiOutput
protected

◆ m_videoSurfaces

CVideoSurfaces VAAPI::CDecoder::m_videoSurfaces
protected

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