Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
MMAL::CDecoder Class Reference

#include <MMALFFmpeg.h>

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

Public Member Functions

 CDecoder (CProcessInfo &processInfo, CDVDStreamInfo &hints)
 
virtual ~CDecoder ()
 
virtual bool Open (AVCodecContext *avctx, AVCodecContext *mainctx, const enum AVPixelFormat) override
 
virtual CDVDVideoCodec::VCReturn Decode (AVCodecContext *avctx, AVFrame *frame) override
 
virtual bool GetPicture (AVCodecContext *avctx, VideoPicture *picture) override
 
virtual CDVDVideoCodec::VCReturn Check (AVCodecContext *avctx) override
 
virtual const std::string Name () override
 
virtual unsigned GetAllowedReferences () override
 
virtual long Release () override
 
- Public Member Functions inherited from IHardwareDecoder
 IHardwareDecoder ()=default
 
 ~IHardwareDecoder () override=default
 
virtual void Reset ()
 
virtual bool CanSkipDeint ()
 
virtual void SetCodecControl (int flags)
 
- 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 void AlignedSize (AVCodecContext *avctx, int &width, int &height)
 
static void FFReleaseBuffer (void *opaque, uint8_t *data)
 
static int FFGetBuffer (AVCodecContext *avctx, AVFrame *pic, int flags)
 
static IHardwareDecoderCreate (CDVDStreamInfo &hint, CProcessInfo &processInfo, AVPixelFormat fmt)
 
static void Register ()
 

Protected Attributes

AVCodecContext * m_avctx
 
CProcessInfom_processInfo
 
CCriticalSection m_section
 
std::shared_ptr< CMMALPoolm_pool
 
enum AVPixelFormat m_fmt
 
CDVDStreamInfo m_hints
 
CMMALYUVBufferm_renderBuffer = nullptr
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ CDecoder()

CDecoder::CDecoder ( CProcessInfo processInfo,
CDVDStreamInfo hints 
)

◆ ~CDecoder()

CDecoder::~CDecoder ( )
virtual

Member Function Documentation

◆ AlignedSize()

void CDecoder::AlignedSize ( AVCodecContext *  avctx,
int &  width,
int &  height 
)
static

◆ Check()

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

Implements IHardwareDecoder.

◆ 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 ( void opaque,
uint8_t data 
)
static

◆ GetAllowedReferences()

unsigned CDecoder::GetAllowedReferences ( )
overridevirtual

Reimplemented from IHardwareDecoder.

◆ GetPicture()

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

Implements IHardwareDecoder.

◆ Name()

virtual const std::string MMAL::CDecoder::Name ( )
inlineoverridevirtual

Implements IHardwareDecoder.

◆ Open()

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

Implements IHardwareDecoder.

◆ Register()

void CDecoder::Register ( )
static

◆ Release()

long CDecoder::Release ( )
overridevirtual

Member Data Documentation

◆ m_avctx

AVCodecContext* MMAL::CDecoder::m_avctx
protected

◆ m_fmt

enum AVPixelFormat MMAL::CDecoder::m_fmt
protected

◆ m_hints

CDVDStreamInfo MMAL::CDecoder::m_hints
protected

◆ m_pool

std::shared_ptr<CMMALPool> MMAL::CDecoder::m_pool
protected

◆ m_processInfo

CProcessInfo& MMAL::CDecoder::m_processInfo
protected

◆ m_renderBuffer

CMMALYUVBuffer* MMAL::CDecoder::m_renderBuffer = nullptr
protected

◆ m_section

CCriticalSection MMAL::CDecoder::m_section
protected

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