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

#include <mythvaapiglxinterop.h>

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

Public Member Functions

 MythVAAPIInteropGLXPixmap (MythPlayerUI *Player, MythRenderOpenGL *Context)
 
 ~MythVAAPIInteropGLXPixmap () override
 
std::vector< MythVideoTextureOpenGL * > Acquire (MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
 
- Public Member Functions inherited from MythVAAPIInteropGLX
 MythVAAPIInteropGLX (MythPlayerUI *Player, MythRenderOpenGL *Context, InteropType Type)
 
 ~MythVAAPIInteropGLX () 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
 
- 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 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 MythVAAPIInteropCreateVAAPI (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 MythInteropGPUCreateDummy ()
 
- Static Public Member Functions inherited from ReferenceCounter
static void PrintDebug (void)
 Print out any leaks if that level of debugging is enabled. More...
 

Private Member Functions

bool InitPixmaps ()
 

Private Attributes

Pixmap m_pixmap { 0 }
 
GLXPixmap m_glxPixmap { 0 }
 
MYTH_GLXBINDTEXIMAGEEXT m_glxBindTexImageEXT { nullptr }
 
MYTH_GLXRELEASETEXIMAGEEXT m_glxReleaseTexImageEXT { nullptr }
 

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 >
 
- Public Slots inherited from MythVAAPIInteropGLX
int SetPictureAttribute (PictureAttribute Attribute, int Value)
 
- Protected Member Functions inherited from MythVAAPIInteropGLX
uint GetFlagsForFrame (MythVideoFrame *Frame, FrameScanType Scan)
 
void InitPictureAttributes (MythVideoColourSpace *ColourSpace)
 
- 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...
 
- Protected Attributes inherited from MythVAAPIInteropGLX
VADisplayAttribute * m_vaapiPictureAttributes { nullptr }
 
int m_vaapiPictureAttributeCount { 0 }
 
uint m_vaapiColourSpace { 0 }
 
MythDeintType m_basicDeinterlacer { DEINT_NONE }
 
- 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
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 49 of file mythvaapiglxinterop.h.

Constructor & Destructor Documentation

◆ MythVAAPIInteropGLXPixmap()

MythVAAPIInteropGLXPixmap::MythVAAPIInteropGLXPixmap ( MythPlayerUI Player,
MythRenderOpenGL Context 
)

Definition at line 312 of file mythvaapiglxinterop.cpp.

◆ ~MythVAAPIInteropGLXPixmap()

MythVAAPIInteropGLXPixmap::~MythVAAPIInteropGLXPixmap ( )
override

Definition at line 323 of file mythvaapiglxinterop.cpp.

Member Function Documentation

◆ Acquire()

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

Reimplemented from MythOpenGLInterop.

Definition at line 343 of file mythvaapiglxinterop.cpp.

◆ IsSupported()

bool MythVAAPIInteropGLXPixmap::IsSupported ( MythRenderOpenGL Context)
static

Definition at line 481 of file mythvaapiglxinterop.cpp.

Referenced by MythVAAPIInterop::GetVAAPITypes().

◆ InitPixmaps()

bool MythVAAPIInteropGLXPixmap::InitPixmaps ( )
private

Member Data Documentation

◆ m_pixmap

Pixmap MythVAAPIInteropGLXPixmap::m_pixmap { 0 }
private

Definition at line 65 of file mythvaapiglxinterop.h.

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

◆ m_glxPixmap

GLXPixmap MythVAAPIInteropGLXPixmap::m_glxPixmap { 0 }
private

Definition at line 66 of file mythvaapiglxinterop.h.

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

◆ m_glxBindTexImageEXT

MYTH_GLXBINDTEXIMAGEEXT MythVAAPIInteropGLXPixmap::m_glxBindTexImageEXT { nullptr }
private

Definition at line 67 of file mythvaapiglxinterop.h.

Referenced by Acquire(), and InitPixmaps().

◆ m_glxReleaseTexImageEXT

MYTH_GLXRELEASETEXIMAGEEXT MythVAAPIInteropGLXPixmap::m_glxReleaseTexImageEXT { nullptr }
private

Definition at line 68 of file mythvaapiglxinterop.h.

Referenced by InitPixmaps(), and ~MythVAAPIInteropGLXPixmap().


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