Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
CRendererVAAPI Class Reference

#include <RendererVAAPIGLES.h>

Inheritance diagram for CRendererVAAPI:
CLinuxRendererGL CLinuxRendererGLES CBaseRenderer CBaseRenderer

Public Member Functions

 CRendererVAAPI ()
 
 ~CRendererVAAPI () override
 
bool Configure (const VideoPicture &picture, float fps, unsigned int orientation) override
 
bool ConfigChanged (const VideoPicture &picture) override
 
void ReleaseBuffer (int idx) override
 
bool NeedBuffer (int idx) override
 
bool Supports (ERENDERFEATURE feature) override
 
bool Supports (ESCALINGMETHOD method) override
 
 CRendererVAAPI ()
 
 ~CRendererVAAPI () override
 
bool Configure (const VideoPicture &picture, float fps, unsigned int orientation) override
 
bool ConfigChanged (const VideoPicture &picture) override
 
void ReleaseBuffer (int idx) override
 
bool NeedBuffer (int idx) override
 
bool Supports (ERENDERFEATURE feature) override
 
bool Supports (ESCALINGMETHOD method) override
 
- Public Member Functions inherited from CLinuxRendererGL
 CLinuxRendererGL ()
 
 ~CLinuxRendererGL () override
 
bool Configure (const VideoPicture &picture, float fps, unsigned int orientation) override
 
bool IsConfigured () override
 
void AddVideoPicture (const VideoPicture &picture, int index) override
 
void UnInit () override
 
bool Flush (bool saveBuffers) override
 
void SetBufferSize (int numBuffers) override
 
void ReleaseBuffer (int idx) override
 
void RenderUpdate (int index, int index2, bool clear, unsigned int flags, unsigned int alpha) override
 
void Update () override
 
bool RenderCapture (CRenderCapture *capture) override
 
CRenderInfo GetRenderInfo () override
 
bool ConfigChanged (const VideoPicture &picture) override
 
bool SupportsMultiPassRendering () override
 
bool Supports (ERENDERFEATURE feature) override
 
bool Supports (ESCALINGMETHOD method) override
 
- Public Member Functions inherited from CBaseRenderer
 CBaseRenderer ()
 
virtual ~CBaseRenderer ()
 
virtual bool IsPictureHW (const VideoPicture &picture)
 
virtual bool WantsDoublePass ()
 
void SetViewMode (int viewMode)
 
void GetVideoRect (CRect &source, CRect &dest, CRect &view)
 Get video rectangle and view window. More...
 
float GetAspectRatio () const
 
void SetVideoSettings (const CVideoSettings &settings)
 
- Public Member Functions inherited from CLinuxRendererGLES
 CLinuxRendererGLES ()
 
virtual ~CLinuxRendererGLES ()
 
virtual bool IsConfigured () override
 
virtual void AddVideoPicture (const VideoPicture &picture, int index) override
 
virtual void UnInit () override
 
virtual bool Flush (bool saveBuffers) override
 
virtual void SetBufferSize (int numBuffers) override
 
virtual bool IsGuiLayer () override
 
virtual void RenderUpdate (int index, int index2, bool clear, unsigned int flags, unsigned int alpha) override
 
virtual void Update () override
 
virtual bool RenderCapture (CRenderCapture *capture) override
 
virtual CRenderInfo GetRenderInfo () override
 
virtual bool SupportsMultiPassRendering () override
 

Static Public Member Functions

static CBaseRendererCreate (CVideoBuffer *buffer)
 
static void Register (VAAPI::IVaapiWinSystem *winSystem, VADisplay vaDpy, EGLDisplay eglDisplay, bool &general, bool &deepColor)
 
static CBaseRendererCreate (CVideoBuffer *buffer)
 
static void Register (VAAPI::IVaapiWinSystem *winSystem, VADisplay vaDpy, EGLDisplay eglDisplay, bool &general, bool &deepColor)
 
- Static Public Member Functions inherited from CLinuxRendererGL
static CBaseRendererCreate (CVideoBuffer *buffer)
 
static bool Register ()
 
- Static Public Member Functions inherited from CBaseRenderer
static void SettingOptionsRenderMethodsFiller (std::shared_ptr< const CSetting > setting, std::vector< std::pair< std::string, int > > &list, int &current, void *data)
 
- Static Public Member Functions inherited from CLinuxRendererGLES
static CBaseRendererCreate (CVideoBuffer *buffer)
 
static bool Register ()
 

Protected Member Functions

bool LoadShadersHook () override
 
bool RenderHook (int idx) override
 
void AfterRenderHook (int idx) override
 
bool UploadTexture (int index) override
 
void DeleteTexture (int index) override
 
bool CreateTexture (int index) override
 
EShaderFormat GetShaderFormat () override
 
bool LoadShadersHook () override
 
bool RenderHook (int idx) override
 
void AfterRenderHook (int idx) override
 
bool UploadTexture (int index) override
 
void DeleteTexture (int index) override
 
bool CreateTexture (int index) override
 
EShaderFormat GetShaderFormat () override
 
- Protected Member Functions inherited from CLinuxRendererGL
bool Render (unsigned int flags, int renderBuffer)
 
void ClearBackBuffer ()
 
void DrawBlackBars ()
 
bool ValidateRenderer ()
 
virtual bool ValidateRenderTarget ()
 
virtual void LoadShaders (int field=FIELD_FULL)
 
void SetTextureFilter (GLenum method)
 
void UpdateVideoFilter ()
 
AVColorPrimaries GetSrcPrimaries (AVColorPrimaries srcPrimaries, unsigned int width, unsigned int height)
 
bool UploadYV12Texture (int index)
 
void DeleteYV12Texture (int index)
 
bool CreateYV12Texture (int index)
 
bool UploadNV12Texture (int index)
 
void DeleteNV12Texture (int index)
 
bool CreateNV12Texture (int index)
 
bool UploadYUV422PackedTexture (int index)
 
void DeleteYUV422PackedTexture (int index)
 
bool CreateYUV422PackedTexture (int index)
 
void CalculateTextureSourceRects (int source, int num_planes)
 
void RenderToFBO (int renderBuffer, int field, bool weave=false)
 
void RenderFromFBO ()
 
void RenderSinglePass (int renderBuffer, int field)
 
void RenderRGB (int renderBuffer, int field)
 
void RenderProgressiveWeave (int renderBuffer, int field)
 
void BindPbo (CPictureBuffer &buff)
 
void UnBindPbo (CPictureBuffer &buff)
 
void LoadPlane (CYuvPlane &plane, int type, unsigned width, unsigned height, int stride, int bpp, void *data)
 
void GetPlaneTextureSize (CYuvPlane &plane)
 
GLint GetInternalFormat (GLint format, int bpp)
 
virtual bool CanSaveBuffers ()
 
bool LoadCLUT ()
 
void DeleteCLUT ()
 
- Protected Member Functions inherited from CBaseRenderer
void CalcNormalRenderRect (float offsetX, float offsetY, float width, float height, float inputFrameRatio, float zoomAmount, float verticalShift)
 
void CalculateFrameAspectRatio (unsigned int desired_width, unsigned int desired_height)
 
virtual void ManageRenderArea ()
 
virtual void ReorderDrawPoints ()
 
void MarkDirty ()
 
void saveRotatedCoords ()
 
void syncDestRectToRotatedPoints ()
 
void restoreRotatedCoords ()
 
- Protected Member Functions inherited from CLinuxRendererGLES
virtual void Render (unsigned int flags, int index)
 
virtual void RenderUpdateVideo (bool clear, unsigned int flags=0, unsigned int alpha=255)
 
int NextYV12Texture ()
 
virtual bool ValidateRenderTarget ()
 
virtual void LoadShaders (int field=FIELD_FULL)
 
virtual void ReleaseShaders ()
 
void SetTextureFilter (GLenum method)
 
void UpdateVideoFilter ()
 
AVColorPrimaries GetSrcPrimaries (AVColorPrimaries srcPrimaries, unsigned int width, unsigned int height)
 
bool UploadYV12Texture (int index)
 
void DeleteYV12Texture (int index)
 
bool CreateYV12Texture (int index)
 
virtual bool SkipUploadYV12 (int index)
 
bool UploadNV12Texture (int index)
 
void DeleteNV12Texture (int index)
 
bool CreateNV12Texture (int index)
 
void CalculateTextureSourceRects (int source, int num_planes)
 
void RenderToFBO (int index, int field)
 
void RenderFromFBO ()
 
void RenderSinglePass (int index, int field)
 
void LoadPlane (CYuvPlane &plane, int type, unsigned width, unsigned height, int stride, int bpp, void *data)
 

Protected Attributes

bool m_isVAAPIBuffer = true
 
std::unique_ptr< VAAPI::CVaapiTexturem_vaapiTextures [NUM_BUFFERS]
 
GLsync m_fences [NUM_BUFFERS]
 
- Protected Attributes inherited from CLinuxRendererGL
struct {
   CFrameBufferObject   fbo
 
   float   width
 
   float   height
 
m_fbo
 
int m_iYV12RenderBuffer = 0
 
int m_NumYV12Buffers = 0
 
bool m_bConfigured = false
 
bool m_bValidated = false
 
GLenum m_textureTarget
 
int m_renderMethod = RENDER_GLSL
 
RenderQuality m_renderQuality = RQ_SINGLEPASS
 
CRenderSystemGLm_renderSystem = nullptr
 
int m_currentField = FIELD_FULL
 
int m_reloadShaders = 0
 
CPictureBuffer m_buffers [NUM_BUFFERS]
 
Shaders::BaseYUV2RGBGLSLShaderm_pYUVShader = nullptr
 
Shaders::BaseVideoFilterShaderm_pVideoFilterShader = nullptr
 
ESCALINGMETHOD m_scalingMethod = VS_SCALINGMETHOD_LINEAR
 
ESCALINGMETHOD m_scalingMethodGui = VS_SCALINGMETHOD_MAX
 
bool m_useDithering
 
unsigned int m_ditherDepth
 
bool m_fullRange
 
AVColorPrimaries m_srcPrimaries
 
bool m_toneMap = false
 
float m_clearColour = 0.0f
 
bool m_pboSupported = true
 
bool m_pboUsed = false
 
bool m_nonLinStretch = false
 
bool m_nonLinStretchGui = false
 
float m_pixelRatio = 0.0f
 
CRect m_viewRect
 
std::unique_ptr< CColorManagerm_ColorManager
 
GLuint m_tCLUTTex
 
uint16_t * m_CLUT
 
int m_CLUTsize
 
int m_cmsToken
 
bool m_cmsOn
 
- Protected Attributes inherited from CBaseRenderer
unsigned int m_sourceWidth = 720
 
unsigned int m_sourceHeight = 480
 
float m_sourceFrameRatio = 1.0f
 
float m_fps = 0.0f
 
unsigned int m_renderOrientation = 0
 
CPoint m_rotatedDestCoords [4]
 
CPoint m_savedRotatedDestCoords [4]
 
CRect m_destRect
 
CRect m_sourceRect
 
CRect m_viewRect
 
unsigned m_iFlags = 0
 
AVPixelFormat m_format = AV_PIX_FMT_NONE
 
CVideoSettings m_videoSettings
 
- Protected Attributes inherited from CLinuxRendererGLES
struct {
   CFrameBufferObject   fbo
 
   float   width {0.0}
 
   float   height {0.0}
 
m_fbo
 
int m_iYV12RenderBuffer {0}
 
int m_NumYV12Buffers {0}
 
bool m_bConfigured {false}
 
bool m_bValidated {false}
 
GLenum m_textureTarget
 
int m_renderMethod {RENDER_GLSL}
 
RenderQuality m_renderQuality {RQ_SINGLEPASS}
 
int m_currentField {FIELD_FULL}
 
int m_reloadShaders {0}
 
CRenderSystemGLESm_renderSystem {nullptr}
 
GLenum m_pixelStoreKey {0}
 
CPictureBuffer m_buffers [NUM_BUFFERS]
 
Shaders::BaseYUV2RGBGLSLShaderm_pYUVProgShader {nullptr}
 
Shaders::BaseYUV2RGBGLSLShaderm_pYUVBobShader {nullptr}
 
Shaders::BaseVideoFilterShaderm_pVideoFilterShader {nullptr}
 
ESCALINGMETHOD m_scalingMethod {VS_SCALINGMETHOD_LINEAR}
 
ESCALINGMETHOD m_scalingMethodGui {VS_SCALINGMETHOD_MAX}
 
bool m_fullRange
 
AVColorPrimaries m_srcPrimaries
 
bool m_toneMap = false
 
unsigned char * m_planeBuffer = nullptr
 
size_t m_planeBufferSize = 0
 
float m_clearColour {0.0f}
 
CRect m_viewRect
 

Static Protected Attributes

static VAAPI::IVaapiWinSystemm_pWinSystem = nullptr
 
- Static Protected Attributes inherited from CLinuxRendererGLES
static const int FIELD_FULL {0}
 
static const int FIELD_TOP {1}
 
static const int FIELD_BOT {2}
 

Constructor & Destructor Documentation

◆ CRendererVAAPI() [1/2]

CRendererVAAPI::CRendererVAAPI ( )
default

◆ ~CRendererVAAPI() [1/2]

CRendererVAAPI::~CRendererVAAPI ( )
override

◆ CRendererVAAPI() [2/2]

CRendererVAAPI::CRendererVAAPI ( )

◆ ~CRendererVAAPI() [2/2]

CRendererVAAPI::~CRendererVAAPI ( )
override

Member Function Documentation

◆ AfterRenderHook() [1/2]

void CRendererVAAPI::AfterRenderHook ( int  idx)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ AfterRenderHook() [2/2]

void CRendererVAAPI::AfterRenderHook ( int  idx)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ ConfigChanged() [1/2]

bool CRendererVAAPI::ConfigChanged ( const VideoPicture picture)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ ConfigChanged() [2/2]

bool CRendererVAAPI::ConfigChanged ( const VideoPicture picture)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Configure() [1/2]

bool CRendererVAAPI::Configure ( const VideoPicture picture,
float  fps,
unsigned int  orientation 
)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Configure() [2/2]

bool CRendererVAAPI::Configure ( const VideoPicture picture,
float  fps,
unsigned int  orientation 
)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Create() [1/2]

CBaseRenderer * CRendererVAAPI::Create ( CVideoBuffer buffer)
static

◆ Create() [2/2]

static CBaseRenderer * CRendererVAAPI::Create ( CVideoBuffer buffer)
static

◆ CreateTexture() [1/2]

bool CRendererVAAPI::CreateTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ CreateTexture() [2/2]

bool CRendererVAAPI::CreateTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ DeleteTexture() [1/2]

void CRendererVAAPI::DeleteTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ DeleteTexture() [2/2]

void CRendererVAAPI::DeleteTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ GetShaderFormat() [1/2]

EShaderFormat CRendererVAAPI::GetShaderFormat ( )
overrideprotectedvirtual

Reimplemented from CBaseRenderer.

◆ GetShaderFormat() [2/2]

EShaderFormat CRendererVAAPI::GetShaderFormat ( )
overrideprotectedvirtual

Reimplemented from CBaseRenderer.

◆ LoadShadersHook() [1/2]

bool CRendererVAAPI::LoadShadersHook ( )
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ LoadShadersHook() [2/2]

bool CRendererVAAPI::LoadShadersHook ( )
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ NeedBuffer() [1/2]

bool CRendererVAAPI::NeedBuffer ( int  idx)
overridevirtual

Reimplemented from CBaseRenderer.

◆ NeedBuffer() [2/2]

bool CRendererVAAPI::NeedBuffer ( int  idx)
overridevirtual

Reimplemented from CBaseRenderer.

◆ Register() [1/2]

void CRendererVAAPI::Register ( VAAPI::IVaapiWinSystem winSystem,
VADisplay  vaDpy,
EGLDisplay  eglDisplay,
bool &  general,
bool &  deepColor 
)
static

◆ Register() [2/2]

static void CRendererVAAPI::Register ( VAAPI::IVaapiWinSystem winSystem,
VADisplay  vaDpy,
EGLDisplay  eglDisplay,
bool &  general,
bool &  deepColor 
)
static

◆ ReleaseBuffer() [1/2]

void CRendererVAAPI::ReleaseBuffer ( int  idx)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ ReleaseBuffer() [2/2]

void CRendererVAAPI::ReleaseBuffer ( int  idx)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ RenderHook() [1/2]

bool CRendererVAAPI::RenderHook ( int  idx)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ RenderHook() [2/2]

bool CRendererVAAPI::RenderHook ( int  idx)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ Supports() [1/4]

bool CRendererVAAPI::Supports ( ERENDERFEATURE  feature)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Supports() [2/4]

bool CRendererVAAPI::Supports ( ERENDERFEATURE  feature)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Supports() [3/4]

bool CRendererVAAPI::Supports ( ESCALINGMETHOD  method)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ Supports() [4/4]

bool CRendererVAAPI::Supports ( ESCALINGMETHOD  method)
overridevirtual

Reimplemented from CLinuxRendererGLES.

◆ UploadTexture() [1/2]

bool CRendererVAAPI::UploadTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

◆ UploadTexture() [2/2]

bool CRendererVAAPI::UploadTexture ( int  index)
overrideprotectedvirtual

Reimplemented from CLinuxRendererGL.

Member Data Documentation

◆ m_fences

GLsync CRendererVAAPI::m_fences
protected

◆ m_isVAAPIBuffer

bool CRendererVAAPI::m_isVAAPIBuffer = true
protected

◆ m_pWinSystem

static VAAPI::IVaapiWinSystem * CRendererVAAPI::m_pWinSystem = nullptr
staticprotected

◆ m_vaapiTextures

std::unique_ptr< VAAPI::CVaapiTexture > CRendererVAAPI::m_vaapiTextures
protected

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