MythTV
master
|
#include <libmythtv/opengl/mythegldmabuf.h>
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 } |
Definition at line 15 of file mythegldmabuf.h.
|
explicit |
Definition at line 18 of file mythegldmabuf.cpp.
|
default |
|
static |
Definition at line 27 of file mythegldmabuf.cpp.
Referenced by MythDRMPRIMEInterop::GetDRMTypes(), and MythVAAPIInteropDRM::IsSupported().
std::vector< MythVideoTextureOpenGL * > MythEGLDMABUF::CreateTextures | ( | AVDRMFrameDescriptor * | Desc, |
MythRenderOpenGL * | Context, | ||
MythVideoFrame * | Frame, | ||
bool | UseSeparate, | ||
FrameScanType | Scan = kScan_Progressive |
||
) |
Definition at line 373 of file mythegldmabuf.cpp.
Referenced by MythDRMPRIMEInterop::Acquire(), MythVAAPIInteropDRM::AcquirePrime(), MythVAAPIInteropDRM::AcquireVAAPI(), and MythVAAPIInteropDRM::TestPrimeInterop().
|
static |
Definition at line 358 of file mythegldmabuf.cpp.
Referenced by CreateComposed(), CreateSeparate(), CreateSeparate2(), and MythVAAPIInteropDRM::TestPrimeInterop().
|
inlineprivate |
Create a single RGBA32 texture using the provided AVDRMFramDescriptor.
Definition at line 62 of file mythegldmabuf.cpp.
Referenced by CreateTextures().
|
inlineprivate |
Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.
Definition at line 179 of file mythegldmabuf.cpp.
Referenced by CreateTextures().
|
inlineprivate |
Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.
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.
Definition at line 276 of file mythegldmabuf.cpp.
Referenced by CreateTextures().
Definition at line 40 of file mythegldmabuf.h.
Referenced by CreateComposed(), CreateSeparate(), CreateSeparate2(), and MythEGLDMABUF().