MythTV  master
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MythVTBSurfaceInterop Class Reference

#include <libmythtv/opengl/mythvtbinterop.h>

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

Public Member Functions

 MythVTBSurfaceInterop (MythPlayerUI *Player, MythRenderOpenGL *Context)
 
 ~MythVTBSurfaceInterop () override
 
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...
 

Private Member Functions

void RotateReferenceFrames (IOSurfaceID Buffer)
 
std::vector< MythVideoTextureOpenGL * > GetReferenceFrames (void)
 

Private Attributes

QVector< IOSurfaceID > m_referenceFrames { }
 

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 >
 
- Static Public Member Functions inherited from MythVTBInterop
static void GetVTBTypes (MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
 
static MythVTBInteropCreateVTB (MythPlayerUI *Player, MythRenderOpenGL *Context)
 
- 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 inherited from MythVTBInterop
CVPixelBufferRef Verify (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame)
 
 MythVTBInterop (MythPlayerUI *Player, MythRenderOpenGL *Context, MythOpenGLInterop::InteropType Type)
 
 ~MythVTBInterop () 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...
 
- 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 27 of file mythvtbinterop.h.

Constructor & Destructor Documentation

◆ MythVTBSurfaceInterop()

MythVTBSurfaceInterop::MythVTBSurfaceInterop ( MythPlayerUI Player,
MythRenderOpenGL Context 
)
explicit

Definition at line 170 of file mythvtbinterop.cpp.

◆ ~MythVTBSurfaceInterop()

MythVTBSurfaceInterop::~MythVTBSurfaceInterop ( )
override

Definition at line 175 of file mythvtbinterop.cpp.

Member Function Documentation

◆ Acquire()

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

Reimplemented from MythVTBInterop.

Definition at line 180 of file mythvtbinterop.cpp.

◆ RotateReferenceFrames()

void MythVTBSurfaceInterop::RotateReferenceFrames ( IOSurfaceID  Buffer)
private

Definition at line 288 of file mythvtbinterop.cpp.

Referenced by Acquire().

◆ GetReferenceFrames()

std::vector< MythVideoTextureOpenGL * > MythVTBSurfaceInterop::GetReferenceFrames ( void  )
private

Definition at line 304 of file mythvtbinterop.cpp.

Referenced by Acquire().

Member Data Documentation

◆ m_referenceFrames

QVector<IOSurfaceID> MythVTBSurfaceInterop::m_referenceFrames { }
private

Definition at line 42 of file mythvtbinterop.h.

Referenced by Acquire(), GetReferenceFrames(), and RotateReferenceFrames().


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