|
MythTV master
|
#include <libmythtv/opengl/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 |
Public Member Functions inherited from MythVAAPIInterop | |
| VASurfaceID | VerifySurface (MythRenderOpenGL *Context, MythVideoFrame *Frame) |
| VADisplay | GetDisplay (void) |
| QString | GetVendor (void) |
Public Member Functions inherited from MythOpenGLInterop | |
| ~MythOpenGLInterop () override | |
| virtual std::vector< MythVideoTextureOpenGL * > | Acquire (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) |
Public Member Functions inherited from MythInteropGPU | |
| 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 () |
Public Member Functions inherited from ReferenceCounter | |
| 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... | |
Public Member Functions inherited from MythEGLDMABUF | |
| 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 Public Member Functions inherited from MythVAAPIInterop | |
| 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 Public Member Functions inherited from MythOpenGLInterop | |
| static void | GetTypes (MythRender *Render, MythInteropGPU::InteropMap &Types) |
| static std::vector< MythVideoTextureOpenGL * > | Retrieve (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) |
Static Public Member Functions inherited from MythInteropGPU | |
| static InteropMap | GetTypes (MythRender *Render) |
| static QString | TypeToString (InteropType Type) |
| static QString | TypesToString (const InteropMap &Types) |
| static MythInteropGPU * | CreateDummy () |
Static Public Member Functions inherited from ReferenceCounter | |
| static void | PrintDebug (void) |
| Print out any leaks if that level of debugging is enabled. More... | |
Static Public Member Functions inherited from MythEGLDMABUF | |
| static bool | HaveDMABuf (MythRenderOpenGL *Context) |
| static void | ClearDMATextures (MythRenderOpenGL *Context, std::vector< MythVideoTextureOpenGL * > &Textures) |
Protected Member Functions | |
| void | DestroyDeinterlacer () override |
| void | PostInitDeinterlacer () override |
| void | DeleteTextures () override |
Protected Member Functions inherited from MythVAAPIInterop | |
| MythVAAPIInterop (MythPlayerUI *Player, MythRenderOpenGL *Context, InteropType Type) | |
| ~MythVAAPIInterop () override | |
| void | InitaliseDisplay (void) |
| VASurfaceID | Deinterlace (MythVideoFrame *Frame, VASurfaceID Current, FrameScanType Scan) |
| virtual void | DestroyDeinterlacer (void) |
| virtual void | PostInitDeinterlacer (void) |
Protected Member Functions inherited from MythOpenGLInterop | |
| MythOpenGLInterop (MythRenderOpenGL *Context, InteropType Type, MythPlayerUI *Player=nullptr) | |
| virtual void | DeleteTextures () |
Protected Member Functions inherited from ReferenceCounter | |
| 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 |
Additional Inherited Members | |
Public Types inherited from MythInteropGPU | |
| enum | InteropType : std::uint8_t { Unsupported = 0 , GL_VAAPIGLXCOPY , GL_VAAPIGLXPIX , GL_VAAPIEGLDRM , GL_VTB , GL_VTBSURFACE , GL_MEDIACODEC , GL_VDPAU , GL_NVDEC , GL_MMAL , GL_DRMPRIME , DRM_DRMPRIME , DUMMY } |
| using | InteropTypes = std::vector< InteropType > |
| using | InteropMap = std::map< VideoFrameType, InteropTypes > |
Protected Attributes inherited from MythVAAPIInterop | |
| VADisplay | m_vaDisplay { nullptr } |
| QString | m_vaVendor |
| MythDeintType | m_deinterlacer { DEINT_NONE } |
| bool | m_deinterlacer2x { false } |
| bool | m_firstField { true } |
| AVBufferRef * | m_vppFramesContext { nullptr } |
| AVFilterContext * | m_filterSink { nullptr } |
| AVFilterContext * | m_filterSource { nullptr } |
| AVFilterGraph * | m_filterGraph { nullptr } |
| bool | m_filterError { false } |
| int | m_filterWidth { 0 } |
| int | m_filterHeight { 0 } |
| VASurfaceID | m_lastFilteredFrame { 0 } |
| uint64_t | m_lastFilteredFrameCount { 0 } |
Protected Attributes inherited from MythOpenGLInterop | |
| MythRenderOpenGL * | m_openglContext { nullptr } |
| QHash< unsigned long long, std::vector< MythVideoTextureOpenGL * > > | m_openglTextures |
Protected Attributes inherited from MythInteropGPU | |
| MythRender * | m_context { nullptr } |
| QSize | m_textureSize |
| uint64_t | m_discontinuityCounter { 0 } |
| FreeAVHWDeviceContext | m_defaultFree { nullptr } |
| void * | m_defaultUserOpaque { nullptr } |
| MythPlayerUI * | m_player { nullptr } |
| InteropType | m_type { Unsupported } |
Protected Attributes inherited from ReferenceCounter | |
| bool | m_logDebug |
| This is used to suppress creating LoggingItem classes for LoggingItem reference count changes. More... | |
| QAtomicInt | m_referenceCount {1} |
Definition at line 16 of file mythvaapidrminterop.h.
| MythVAAPIInteropDRM::MythVAAPIInteropDRM | ( | MythPlayerUI * | Player, |
| MythRenderOpenGL * | Context, | ||
| InteropType | Type | ||
| ) |
Definition at line 24 of file mythvaapidrminterop.cpp.
|
override |
Definition at line 56 of file mythvaapidrminterop.cpp.
|
overridevirtual |
Reimplemented from MythOpenGLInterop.
Definition at line 173 of file mythvaapidrminterop.cpp.
|
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 415 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 293 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 444 of file mythvaapidrminterop.cpp.
Referenced by DestroyDeinterlacer(), PostInitDeinterlacer(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 116 of file mythvaapidrminterop.cpp.
Referenced by Acquire(), and ~MythVAAPIInteropDRM().
|
overrideprotectedvirtual |
Reimplemented from MythOpenGLInterop.
Definition at line 70 of file mythvaapidrminterop.cpp.
Referenced by DestroyDeinterlacer(), PostInitDeinterlacer(), and ~MythVAAPIInteropDRM().
|
overrideprotectedvirtual |
Reimplemented from MythVAAPIInterop.
Definition at line 97 of file mythvaapidrminterop.cpp.
Referenced by Acquire(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 429 of file mythvaapidrminterop.cpp.
Referenced by AcquirePrime().
|
private |
Definition at line 148 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
static |
Definition at line 381 of file mythvaapidrminterop.cpp.
Referenced by MythVAAPIInterop::GetVAAPITypes().
|
overrideprotectedvirtual |
Reimplemented from MythVAAPIInterop.
Definition at line 108 of file mythvaapidrminterop.cpp.
|
private |
Definition at line 125 of file mythvaapidrminterop.cpp.
Referenced by Acquire().
|
private |
Definition at line 459 of file mythvaapidrminterop.cpp.
Referenced by MythVAAPIInteropDRM().
|
staticprivate |
Definition at line 360 of file mythvaapidrminterop.cpp.
Referenced by AcquireVAAPI().
|
private |
Definition at line 39 of file mythvaapidrminterop.h.
Referenced by MythVAAPIInteropDRM(), and ~MythVAAPIInteropDRM().
|
private |
Definition at line 53 of file mythvaapidrminterop.h.
Referenced by AcquirePrime(), and CleanupDRMPRIME().
|
private |
Definition at line 40 of file mythvaapidrminterop.h.
Referenced by CleanupReferenceFrames(), GetReferenceFrames(), and RotateReferenceFrames().
|
private |
Definition at line 52 of file mythvaapidrminterop.h.
Referenced by Acquire(), and MythVAAPIInteropDRM().