MythTV  master
mythvaapiglxinterop.h
Go to the documentation of this file.
1 #ifndef MYTHVAAPIGLXNTEROP_H
2 #define MYTHVAAPIGLXNTEROP_H
3 
4 // MythTV
5 #include "mythvaapiinterop.h"
6 
8 {
9  Q_OBJECT
10 
11  public:
13  ~MythVAAPIInteropGLX() override;
14 
15  public slots:
16  int SetPictureAttribute(PictureAttribute Attribute, int Value);
17 
18  protected:
21 
22  protected:
23  VADisplayAttribute* m_vaapiPictureAttributes { nullptr };
27 };
28 
30 {
31  public:
33  ~MythVAAPIInteropGLXCopy() override;
34 
35  std::vector<MythVideoTextureOpenGL*>
36  Acquire(MythRenderOpenGL* Context,
37  MythVideoColourSpace* ColourSpace,
38  MythVideoFrame* Frame, FrameScanType Scan) override;
39 
40  private:
41  void* m_glxSurface { nullptr };
42 };
43 
44 #include "GL/glx.h"
45 #include "GL/glxext.h"
46 using MYTH_GLXBINDTEXIMAGEEXT = void (*)(Display*, GLXDrawable, int, int*);
47 using MYTH_GLXRELEASETEXIMAGEEXT = void (*)(Display*, GLXDrawable, int);
48 
50 {
51  public:
53  ~MythVAAPIInteropGLXPixmap() override;
54 
55  std::vector<MythVideoTextureOpenGL*>
56  Acquire(MythRenderOpenGL* Context,
57  MythVideoColourSpace* ColourSpace,
58  MythVideoFrame* Frame, FrameScanType Scan) override;
59  static bool IsSupported(MythRenderOpenGL* Context);
60 
61  private:
62  bool InitPixmaps();
63 
64  // Texture from Pixmap
65  Pixmap m_pixmap { 0 };
66  GLXPixmap m_glxPixmap { 0 };
69 };
70 
71 
72 #endif // MYTHVAAPIGLXNTEROP_H
MythVAAPIInteropGLXPixmap::InitPixmaps
bool InitPixmaps()
Definition: mythvaapiglxinterop.cpp:465
mythvaapiinterop.h
MythVAAPIInteropGLXPixmap::m_pixmap
Pixmap m_pixmap
Definition: mythvaapiglxinterop.h:65
MYTH_GLXRELEASETEXIMAGEEXT
void(*)(Display *, GLXDrawable, int) MYTH_GLXRELEASETEXIMAGEEXT
Definition: mythvaapiglxinterop.h:47
MYTH_GLXBINDTEXIMAGEEXT
void(*)(Display *, GLXDrawable, int, int *) MYTH_GLXBINDTEXIMAGEEXT
Definition: mythvaapiglxinterop.h:46
Frame
Definition: zmdefines.h:93
DEINT_NONE
@ DEINT_NONE
Definition: mythframe.h:69
MythVAAPIInteropGLXCopy::MythVAAPIInteropGLXCopy
MythVAAPIInteropGLXCopy(MythPlayerUI *Player, MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:214
FrameScanType
FrameScanType
Definition: videoouttypes.h:94
MythVAAPIInteropGLXPixmap::Acquire
std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvaapiglxinterop.cpp:343
MythVAAPIInteropGLXPixmap::m_glxPixmap
GLXPixmap m_glxPixmap
Definition: mythvaapiglxinterop.h:66
MythVAAPIInterop
Definition: mythvaapiinterop.h:48
MythVAAPIInteropGLXPixmap::m_glxReleaseTexImageEXT
MYTH_GLXRELEASETEXIMAGEEXT m_glxReleaseTexImageEXT
Definition: mythvaapiglxinterop.h:68
MythPlayerUI
Definition: mythplayerui.h:10
MythVAAPIInteropGLXCopy
Definition: mythvaapiglxinterop.h:29
MythVAAPIInteropGLXPixmap::MythVAAPIInteropGLXPixmap
MythVAAPIInteropGLXPixmap(MythPlayerUI *Player, MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:312
MythVAAPIInteropGLXCopy::Acquire
std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvaapiglxinterop.cpp:246
MythVAAPIInteropGLX::m_vaapiPictureAttributeCount
int m_vaapiPictureAttributeCount
Definition: mythvaapiglxinterop.h:24
MythVAAPIInteropGLX::~MythVAAPIInteropGLX
~MythVAAPIInteropGLX() override
Definition: mythvaapiglxinterop.cpp:12
MythVAAPIInteropGLX::m_vaapiColourSpace
uint m_vaapiColourSpace
Definition: mythvaapiglxinterop.h:25
MythVAAPIInteropGLXPixmap::m_glxBindTexImageEXT
MYTH_GLXBINDTEXIMAGEEXT m_glxBindTexImageEXT
Definition: mythvaapiglxinterop.h:67
MythVAAPIInteropGLX::m_vaapiPictureAttributes
VADisplayAttribute * m_vaapiPictureAttributes
Definition: mythvaapiglxinterop.h:23
uint
unsigned int uint
Definition: compat.h:81
MythVAAPIInteropGLX::InitPictureAttributes
void InitPictureAttributes(MythVideoColourSpace *ColourSpace)
Definition: mythvaapiglxinterop.cpp:89
PictureAttribute
PictureAttribute
Definition: videoouttypes.h:103
MythVAAPIInteropGLXCopy::m_glxSurface
void * m_glxSurface
Definition: mythvaapiglxinterop.h:41
MythRenderOpenGL
Definition: mythrenderopengl.h:96
MythVAAPIInteropGLXPixmap::~MythVAAPIInteropGLXPixmap
~MythVAAPIInteropGLXPixmap() override
Definition: mythvaapiglxinterop.cpp:323
MythDeintType
MythDeintType
Definition: mythframe.h:67
MythVAAPIInteropGLXPixmap
Definition: mythvaapiglxinterop.h:49
MythVAAPIInteropGLX::GetFlagsForFrame
uint GetFlagsForFrame(MythVideoFrame *Frame, FrameScanType Scan)
Definition: mythvaapiglxinterop.cpp:17
MythVAAPIInteropGLXPixmap::IsSupported
static bool IsSupported(MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:481
MythVAAPIInteropGLX::SetPictureAttribute
int SetPictureAttribute(PictureAttribute Attribute, int Value)
Definition: mythvaapiglxinterop.cpp:157
Player
Definition: zmliveplayer.h:34
MythVideoFrame
Definition: mythframe.h:88
MythInteropGPU::InteropType
InteropType
Definition: mythinteropgpu.h:25
MythVAAPIInteropGLX
Definition: mythvaapiglxinterop.h:7
MythVAAPIInteropGLX::MythVAAPIInteropGLX
MythVAAPIInteropGLX(MythPlayerUI *Player, MythRenderOpenGL *Context, InteropType Type)
Definition: mythvaapiglxinterop.cpp:7
MythVAAPIInteropGLXCopy::~MythVAAPIInteropGLXCopy
~MythVAAPIInteropGLXCopy() override
Definition: mythvaapiglxinterop.cpp:233
MythVideoColourSpace
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
Definition: mythvideocolourspace.h:18
MythVAAPIInteropGLX::m_basicDeinterlacer
MythDeintType m_basicDeinterlacer
Definition: mythvaapiglxinterop.h:26