Kodi Documentation  18.0
Kodi is an open source media player and entertainment hub.
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)
 

Protected Attributes

enum VAAPI::CDecoder::EDisplayState m_DisplayState
 
CCriticalSection m_DecoderSection
 
CEvent m_DisplayEvent
 
int m_ErrorCount
 
ThreadIdentifier m_decoderThread
 
bool m_vaapiConfigured
 
CVaapiConfig m_vaapiConfig
 
CVideoSurfaces m_videoSurfaces
 
AVCodecContext * m_avctx
 
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)
protected

§ Close()

void CDecoder::Close ( void  )
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 ( void  )
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 Function Documentation

§ CVaapiBufferPool

friend class CVaapiBufferPool
friend

Member Data Documentation

§ m_avctx

AVCodecContext* VAAPI::CDecoder::m_avctx
protected

§ 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_decoderThread

ThreadIdentifier VAAPI::CDecoder::m_decoderThread
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: