MythTV
master
|
#include <mythvaapidrminterop.h>
Public Member Functions | |
MythVAAPIInteropDRM (MythPlayerUI *Player, MythRenderOpenGL *Context, InteropType Type) | |
~MythVAAPIInteropDRM () override | |
std::vector< MythVideoTextureOpenGL * > | Acquire (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override |
void | DeleteTextures () override |
![]() | |
VASurfaceID | VerifySurface (MythRenderOpenGL *Context, MythVideoFrame *Frame) |
VADisplay | GetDisplay (void) |
QString | GetVendor (void) |
![]() | |
~MythOpenGLInterop () override | |
![]() | |
MythInteropGPU (MythRender *Context, InteropType Type, MythPlayerUI *Player=nullptr) | |
~MythInteropGPU () override | |
InteropType | GetType () |
MythPlayerUI * | GetPlayer () |
void | SetDefaultFree (FreeAVHWDeviceContext FreeContext) |
void | SetDefaultUserOpaque (void *UserOpaque) |
FreeAVHWDeviceContext | GetDefaultFree () |
void * | GetDefaultUserOpaque () |
![]() | |
ReferenceCounter (const QString &debugName, bool logDebug=true) | |
Creates reference counter with an initial value of 1. More... | |
virtual int | IncrRef (void) |
Increments reference count. More... | |
virtual int | DecrRef (void) |
Decrements reference count and deletes on 0. More... | |
![]() | |
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 | IsSupported (MythRenderOpenGL *Context) |
![]() | |
static void | GetVAAPITypes (MythRenderOpenGL *Context, MythInteropGPU::InteropMap &Types) |
Return a list of interops that are supported by the current render device. More... | |
static MythVAAPIInterop * | CreateVAAPI (MythPlayerUI *Player, MythRenderOpenGL *Context) |
static bool | SetupDeinterlacer (MythDeintType Deinterlacer, bool DoubleRate, AVBufferRef *FramesContext, int Width, int Height, AVFilterGraph *&Graph, AVFilterContext *&Source, AVFilterContext *&Sink) |
![]() | |
static void | GetTypes (MythRender *Render, MythInteropGPU::InteropMap &Types) |
static std::vector< MythVideoTextureOpenGL * > | Retrieve (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) |
![]() | |
static InteropMap | GetTypes (MythRender *Render) |
static QString | TypeToString (InteropType Type) |
static QString | TypesToString (const InteropMap &Types) |
static MythInteropGPU * | CreateDummy () |
![]() | |
static void | PrintDebug (void) |
Print out any leaks if that level of debugging is enabled. More... | |
![]() | |
static bool | HaveDMABuf (MythRenderOpenGL *Context) |
static void | ClearDMATextures (MythRenderOpenGL *Context, std::vector< MythVideoTextureOpenGL * > &Textures) |
Protected Member Functions | |
void | DestroyDeinterlacer () override |
void | PostInitDeinterlacer () override |
![]() | |
MythVAAPIInterop (MythPlayerUI *Player, MythRenderOpenGL *Context, InteropType Type) | |
~MythVAAPIInterop () override | |
void | InitaliseDisplay (void) |
VASurfaceID | Deinterlace (MythVideoFrame *Frame, VASurfaceID Current, FrameScanType Scan) |
![]() | |
MythOpenGLInterop (MythRenderOpenGL *Context, InteropType Type, MythPlayerUI *Player=nullptr) | |
![]() | |
virtual | ~ReferenceCounter (void) |
Called on destruction, will warn if object deleted with references in place. More... | |
Private Member Functions | |
void | CleanupReferenceFrames () |
void | RotateReferenceFrames (AVBufferRef *Buffer) |
std::vector< MythVideoTextureOpenGL * > | GetReferenceFrames () |
std::vector< MythVideoTextureOpenGL * > | AcquireVAAPI (VASurfaceID Id, MythRenderOpenGL *Context, MythVideoFrame *Frame) |
std::vector< MythVideoTextureOpenGL * > | AcquirePrime (VASurfaceID Id, MythRenderOpenGL *Context, MythVideoFrame *Frame) |
Export the given VideoFrame as a DRM PRIME descriptor. More... | |
AVDRMFrameDescriptor * | GetDRMFrameDescriptor (VASurfaceID Id) |
void | CleanupDRMPRIME () |
bool | TestPrimeInterop () |
Static Private Member Functions | |
static VideoFrameType | VATypeToMythType (uint32_t Fourcc) |
Private Attributes | |
QFile | m_drmFile { } |
QVector< AVBufferRef * > | m_referenceFrames { } |
bool | m_usePrime { false } |
QHash< unsigned long long, AVDRMFrameDescriptor * > | m_drmFrames { } |
Definition at line 15 of file mythvaapidrminterop.h.
MythVAAPIInteropDRM::MythVAAPIInteropDRM | ( | MythPlayerUI * | Player, |
MythRenderOpenGL * | Context, | ||
InteropType | Type | ||
) |
Definition at line 17 of file mythvaapidrminterop.cpp.
|
override |
Definition at line 49 of file mythvaapidrminterop.cpp.
|
overridevirtual |
Reimplemented from MythOpenGLInterop.
Definition at line 166 of file mythvaapidrminterop.cpp.
|
static |
Definition at line 374 of file mythvaapidrminterop.cpp.
Referenced by MythVAAPIInterop::GetVAAPITypes().
|
overridevirtual |
Reimplemented from MythOpenGLInterop.
Definition at line 63 of file mythvaapidrminterop.cpp.
Referenced by DestroyDeinterlacer(), PostInitDeinterlacer(), and ~MythVAAPIInteropDRM().
|
overrideprotectedvirtual |
Reimplemented from MythVAAPIInterop.
Definition at line 90 of file mythvaapidrminterop.cpp.
Referenced by Acquire(), and ~MythVAAPIInteropDRM().
|
overrideprotectedvirtual |
Reimplemented from MythVAAPIInterop.
Definition at line 101 of file mythvaapidrminterop.cpp.
|
staticprivate |
Definition at line 353 of file mythvaapidrminterop.cpp.
Referenced by AcquireVAAPI().
|
private |
Definition at line 109 of file mythvaapidrminterop.cpp.
Referenced by Acquire(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 118 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 141 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 286 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Export the given VideoFrame as a DRM PRIME descriptor.
This is funcionally equivalent to the 'regular' VAAPI version but is useful for testing DRM PRIME functionality on desktops.
Definition at line 410 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 430 of file mythvaapidrminterop.cpp.
Referenced by AcquirePrime().
|
private |
Definition at line 450 of file mythvaapidrminterop.cpp.
Referenced by DestroyDeinterlacer(), PostInitDeinterlacer(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 465 of file mythvaapidrminterop.cpp.
Referenced by MythVAAPIInteropDRM().
|
private |
Definition at line 38 of file mythvaapidrminterop.h.
Referenced by MythVAAPIInteropDRM(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 39 of file mythvaapidrminterop.h.
Referenced by CleanupReferenceFrames(), GetReferenceFrames(), and RotateReferenceFrames().
Definition at line 51 of file mythvaapidrminterop.h.
Referenced by Acquire(), and MythVAAPIInteropDRM().
|
private |
Definition at line 52 of file mythvaapidrminterop.h.
Referenced by AcquirePrime(), and CleanupDRMPRIME().