MythTV
master
|
#include <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 17 of file mythegldmabuf.cpp.
|
default |
|
static |
Definition at line 26 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 372 of file mythegldmabuf.cpp.
Referenced by MythDRMPRIMEInterop::Acquire(), MythVAAPIInteropDRM::AcquirePrime(), MythVAAPIInteropDRM::AcquireVAAPI(), and MythVAAPIInteropDRM::TestPrimeInterop().
|
static |
Definition at line 357 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 61 of file mythegldmabuf.cpp.
Referenced by CreateTextures().
|
inlineprivate |
Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.
Definition at line 178 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 275 of file mythegldmabuf.cpp.
Referenced by CreateTextures().
Definition at line 40 of file mythegldmabuf.h.
Referenced by CreateComposed(), CreateSeparate(), CreateSeparate2(), and MythEGLDMABUF().