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

#include <libmythtv/opengl/mythmmalinterop.h>

Inheritance diagram for MythMMALInterop:
[legend]
Collaboration diagram for MythMMALInterop:
[legend]

Public Member Functions

virtual std::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...
 

Static Public Member Functions

static void GetMMALTypes (MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
 
static MythMMALInteropCreateMMAL (MythRenderOpenGL *Context)
 Create an MMAL interop. More...
 
- 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 MythInteropGPUCreateDummy ()
 
- Static Public Member Functions inherited from ReferenceCounter
static void PrintDebug (void)
 Print out any leaks if that level of debugging is enabled. More...
 

Protected Member Functions

 MythMMALInterop (MythRenderOpenGL *Context)
 
virtual ~MythMMALInterop () override
 
- 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

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

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 MythOpenGLInterop
MythRenderOpenGLm_openglContext { nullptr }
 
QHash< unsigned long long, std::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 13 of file mythmmalinterop.h.

Constructor & Destructor Documentation

◆ MythMMALInterop()

MythMMALInterop::MythMMALInterop ( MythRenderOpenGL Context)
protected

Definition at line 15 of file mythmmalinterop.cpp.

Referenced by CreateMMAL().

◆ ~MythMMALInterop()

MythMMALInterop::~MythMMALInterop ( )
overrideprotectedvirtual

Definition at line 20 of file mythmmalinterop.cpp.

Member Function Documentation

◆ GetMMALTypes()

void MythMMALInterop::GetMMALTypes ( MythRenderOpenGL Render,
MythInteropGPU::InteropMap Types 
)
static

Definition at line 25 of file mythmmalinterop.cpp.

Referenced by MythOpenGLInterop::GetTypes().

◆ CreateMMAL()

MythMMALInterop * MythMMALInterop::CreateMMAL ( MythRenderOpenGL Context)
static

Create an MMAL interop.

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 49 of file mythmmalinterop.cpp.

Referenced by MythMMALContext::HwDecoderInit().

◆ Acquire()

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

Reimplemented from MythOpenGLInterop.

Definition at line 89 of file mythmmalinterop.cpp.

◆ VerifyBuffer()

MMAL_BUFFER_HEADER_T * MythMMALInterop::VerifyBuffer ( MythRenderOpenGL Context,
MythVideoFrame Frame 
)
private

Definition at line 54 of file mythmmalinterop.cpp.

Referenced by Acquire().


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