MythTV  master
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
MythEGLDMABUF Class Reference

#include <mythegldmabuf.h>

Inheritance diagram for MythEGLDMABUF:
Inheritance graph
[legend]

Public Member Functions

 MythEGLDMABUF (MythRenderOpenGL *Context)
 
 ~MythEGLDMABUF ()=default
 
std::vector< MythVideoTextureOpenGL * > CreateTextures (AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame, bool UseSeparate, FrameScanType Scan=kScan_Progressive)
 

Static Public Member Functions

static bool HaveDMABuf (MythRenderOpenGL *Context)
 
static void ClearDMATextures (MythRenderOpenGL *Context, std::vector< MythVideoTextureOpenGL * > &Textures)
 

Private Member Functions

std::vector< MythVideoTextureOpenGL * > CreateComposed (AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame, FrameScanType Scan) const
 Create a single RGBA32 texture using the provided AVDRMFramDescriptor. More...
 
std::vector< MythVideoTextureOpenGL * > CreateSeparate (AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame) const
 Create multiple textures that represent the planes for the given AVDRMFrameDescriptor. More...
 
std::vector< MythVideoTextureOpenGL * > CreateSeparate2 (AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame) const
 Create multiple textures that represent the planes for the given AVDRMFrameDescriptor. More...
 

Private Attributes

bool m_useModifiers { false }
 

Detailed Description

Definition at line 15 of file mythegldmabuf.h.

Constructor & Destructor Documentation

◆ MythEGLDMABUF()

MythEGLDMABUF::MythEGLDMABUF ( MythRenderOpenGL Context)
explicit

Definition at line 17 of file mythegldmabuf.cpp.

◆ ~MythEGLDMABUF()

MythEGLDMABUF::~MythEGLDMABUF ( )
default

Member Function Documentation

◆ HaveDMABuf()

bool MythEGLDMABUF::HaveDMABuf ( MythRenderOpenGL Context)
static

◆ CreateTextures()

std::vector< MythVideoTextureOpenGL * > MythEGLDMABUF::CreateTextures ( AVDRMFrameDescriptor *  Desc,
MythRenderOpenGL Context,
MythVideoFrame Frame,
bool  UseSeparate,
FrameScanType  Scan = kScan_Progressive 
)

◆ ClearDMATextures()

void MythEGLDMABUF::ClearDMATextures ( MythRenderOpenGL Context,
std::vector< MythVideoTextureOpenGL * > &  Textures 
)
static

◆ CreateComposed()

std::vector< MythVideoTextureOpenGL * > MythEGLDMABUF::CreateComposed ( AVDRMFrameDescriptor *  Desc,
MythRenderOpenGL Context,
MythVideoFrame Frame,
FrameScanType  Scan 
) const
inlineprivate

Create a single RGBA32 texture using the provided AVDRMFramDescriptor.

Note
This assumes one layer with multiple planes, typically where the layer is a YUV format.

Definition at line 61 of file mythegldmabuf.cpp.

Referenced by CreateTextures().

◆ CreateSeparate()

std::vector< MythVideoTextureOpenGL * > MythEGLDMABUF::CreateSeparate ( AVDRMFrameDescriptor *  Desc,
MythRenderOpenGL Context,
MythVideoFrame Frame 
) const
inlineprivate

Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.

Note
This assumes multiple layers each with one plane.

Definition at line 178 of file mythegldmabuf.cpp.

Referenced by CreateTextures().

◆ CreateSeparate2()

std::vector< MythVideoTextureOpenGL * > MythEGLDMABUF::CreateSeparate2 ( AVDRMFrameDescriptor *  Desc,
MythRenderOpenGL Context,
MythVideoFrame Frame 
) const
inlineprivate

Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.

Note
This assumes one layer with multiple planes that represent a YUV format.

It is used where the OpenGL DMA BUF implementation does not support composing YUV formats. It offers better feature support (as we can enable colour controls, shader deinterlacing etc) but may not be as fast on low end hardware; it might not use hardware accelerated paths and shader deinterlacing may not be as fast as the simple EGL based onefield/bob deinterlacer. It is essentially the same as CreateSeparate but the DRM descriptor uses a different layout and we have to 'guess' the correct DRM_FORMATs for each plane.

Todo:
Add support for simple onefield/bob with YUV textures.

Definition at line 275 of file mythegldmabuf.cpp.

Referenced by CreateTextures().

Member Data Documentation

◆ m_useModifiers

bool MythEGLDMABUF::m_useModifiers { false }
private

Definition at line 40 of file mythegldmabuf.h.

Referenced by CreateComposed(), CreateSeparate(), CreateSeparate2(), and MythEGLDMABUF().


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