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

#include <mythdrmprimeinterop.h>

Inheritance diagram for MythDRMPRIMEInterop:
Inheritance graph
[legend]
Collaboration diagram for MythDRMPRIMEInterop:
Collaboration graph
[legend]

Public Member Functions

void DeleteTextures (void) override
 
vector< MythVideoTextureOpenGL * > Acquire (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
 
- Public Member Functions inherited from MythOpenGLInterop
 ~MythOpenGLInterop () override
 
- Public Member Functions inherited from MythInteropGPU
 MythInteropGPU (MythRender *Context, InteropType Type, MythPlayerUI *Player=nullptr)
 
 ~MythInteropGPU () override
 
InteropType GetType ()
 
MythPlayerUIGetPlayer ()
 
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 void GetDRMTypes (MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
 
static MythDRMPRIMEInteropCreateDRM (MythRenderOpenGL *Context, MythPlayerUI *Player=nullptr)
 Create a DRM PRIME interop instance. More...
 
- Static Public Member Functions inherited from MythOpenGLInterop
static void GetTypes (MythRender *Render, MythInteropGPU::InteropMap &Types)
 
static 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 MythInteropGPUCreateDummy ()
 
- 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

 MythDRMPRIMEInterop (MythRenderOpenGL *Context, MythPlayerUI *Player)
 
 ~MythDRMPRIMEInterop () override
 
- Protected Member Functions inherited from MythOpenGLInterop
 MythOpenGLInterop (MythRenderOpenGL *Context, InteropType Type, MythPlayerUI *Player=nullptr)
 
- 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

AVDRMFrameDescriptor * VerifyBuffer (MythRenderOpenGL *Context, MythVideoFrame *Frame)
 

Private Attributes

bool m_deinterlacing { false }
 
bool m_composable { true }
 

Additional Inherited Members

- Public Types inherited from MythInteropGPU
enum  InteropType {
  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 MythOpenGLInterop
MythRenderOpenGLm_openglContext { nullptr }
 
QHash< unsigned long long, vector< MythVideoTextureOpenGL * > > m_openglTextures
 
- Protected Attributes inherited from MythInteropGPU
MythRenderm_context { nullptr }
 
QSize m_textureSize { }
 
uint64_t m_discontinuityCounter { 0 }
 
FreeAVHWDeviceContext m_defaultFree { nullptr }
 
void * m_defaultUserOpaque { nullptr }
 
MythPlayerUIm_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}
 

Detailed Description

Definition at line 10 of file mythdrmprimeinterop.h.

Constructor & Destructor Documentation

◆ MythDRMPRIMEInterop()

MythDRMPRIMEInterop::MythDRMPRIMEInterop ( MythRenderOpenGL Context,
MythPlayerUI Player 
)
protected

Definition at line 13 of file mythdrmprimeinterop.cpp.

Referenced by CreateDRM().

◆ ~MythDRMPRIMEInterop()

MythDRMPRIMEInterop::~MythDRMPRIMEInterop ( )
overrideprotected

Definition at line 19 of file mythdrmprimeinterop.cpp.

Member Function Documentation

◆ GetDRMTypes()

void MythDRMPRIMEInterop::GetDRMTypes ( MythRenderOpenGL Render,
MythInteropGPU::InteropMap Types 
)
static

Definition at line 61 of file mythdrmprimeinterop.cpp.

Referenced by MythOpenGLInterop::GetTypes().

◆ CreateDRM()

MythDRMPRIMEInterop * MythDRMPRIMEInterop::CreateDRM ( MythRenderOpenGL Context,
MythPlayerUI Player = nullptr 
)
static

Create a DRM PRIME interop instance.

Note
This is called directly from the decoder - hence we do not attempt to retrieve the list of supported types again. Assume it has already been verified.

Definition at line 56 of file mythdrmprimeinterop.cpp.

Referenced by MythDRMPRIMEContext::HwDecoderInit().

◆ DeleteTextures()

void MythDRMPRIMEInterop::DeleteTextures ( void  )
overridevirtual

Reimplemented from MythOpenGLInterop.

Definition at line 24 of file mythdrmprimeinterop.cpp.

Referenced by Acquire(), and ~MythDRMPRIMEInterop().

◆ Acquire()

vector< MythVideoTextureOpenGL * > MythDRMPRIMEInterop::Acquire ( MythRenderOpenGL Context,
MythVideoColourSpace ColourSpace,
MythVideoFrame Frame,
FrameScanType  Scan 
)
overridevirtual

Reimplemented from MythOpenGLInterop.

Definition at line 100 of file mythdrmprimeinterop.cpp.

◆ VerifyBuffer()

AVDRMFrameDescriptor * MythDRMPRIMEInterop::VerifyBuffer ( MythRenderOpenGL Context,
MythVideoFrame Frame 
)
private

Definition at line 67 of file mythdrmprimeinterop.cpp.

Referenced by Acquire().

Member Data Documentation

◆ m_deinterlacing

bool MythDRMPRIMEInterop::m_deinterlacing { false }
private

Definition at line 26 of file mythdrmprimeinterop.h.

Referenced by Acquire().

◆ m_composable

bool MythDRMPRIMEInterop::m_composable { true }
private

Definition at line 27 of file mythdrmprimeinterop.h.

Referenced by Acquire().


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