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  vector<MythVideoTexture*> Acquire(MythRenderOpenGL *Context,
35  MythVideoColourSpace *ColourSpace,
36  MythVideoFrame *Frame, FrameScanType Scan) override;
37 
38  private:
39  void* m_glxSurface { nullptr };
40 };
41 
42 #include "GL/glx.h"
43 #include "GL/glxext.h"
44 using MYTH_GLXBINDTEXIMAGEEXT = void (*)(Display*, GLXDrawable, int, int*);
45 using MYTH_GLXRELEASETEXIMAGEEXT = void (*)(Display*, GLXDrawable, int);
46 
48 {
49  public:
51  ~MythVAAPIInteropGLXPixmap() override;
52  vector<MythVideoTexture*> Acquire(MythRenderOpenGL *Context,
53  MythVideoColourSpace *ColourSpace,
54  MythVideoFrame *Frame, FrameScanType Scan) override;
55  static bool IsSupported(MythRenderOpenGL *Context);
56 
57  private:
58  bool InitPixmaps(void);
59 
60  // Texture from Pixmap
61  Pixmap m_pixmap { 0 };
62  GLXPixmap m_glxPixmap { 0 };
65 };
66 
67 
68 #endif // MYTHVAAPIGLXNTEROP_H
mythvaapiinterop.h
MythVAAPIInteropGLXCopy::MythVAAPIInteropGLXCopy
MythVAAPIInteropGLXCopy(MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:214
MythVAAPIInteropGLXPixmap::m_pixmap
Pixmap m_pixmap
Definition: mythvaapiglxinterop.h:61
MYTH_GLXRELEASETEXIMAGEEXT
void(*)(Display *, GLXDrawable, int) MYTH_GLXRELEASETEXIMAGEEXT
Definition: mythvaapiglxinterop.h:45
MYTH_GLXBINDTEXIMAGEEXT
void(*)(Display *, GLXDrawable, int, int *) MYTH_GLXBINDTEXIMAGEEXT
Definition: mythvaapiglxinterop.h:44
Frame
Definition: zmdefines.h:94
DEINT_NONE
@ DEINT_NONE
Definition: mythframe.h:64
MythVAAPIInteropGLXPixmap::Acquire
vector< MythVideoTexture * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvaapiglxinterop.cpp:341
FrameScanType
FrameScanType
Definition: videoouttypes.h:95
Context
QHash< QString, Action * > Context
Definition: action.h:77
MythVAAPIInteropGLXPixmap::m_glxPixmap
GLXPixmap m_glxPixmap
Definition: mythvaapiglxinterop.h:62
MythVAAPIInterop
Definition: mythvaapiinterop.h:37
MythVAAPIInteropGLXPixmap::m_glxReleaseTexImageEXT
MYTH_GLXRELEASETEXIMAGEEXT m_glxReleaseTexImageEXT
Definition: mythvaapiglxinterop.h:64
MythVAAPIInteropGLXCopy
Definition: mythvaapiglxinterop.h:30
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:63
MythVAAPIInteropGLX::m_vaapiPictureAttributes
VADisplayAttribute * m_vaapiPictureAttributes
Definition: mythvaapiglxinterop.h:23
uint
unsigned int uint
Definition: compat.h:141
MythVAAPIInteropGLX::InitPictureAttributes
void InitPictureAttributes(MythVideoColourSpace *ColourSpace)
Definition: mythvaapiglxinterop.cpp:89
MythOpenGLInterop::Type
Type
Definition: mythopenglinterop.h:30
PictureAttribute
PictureAttribute
Definition: videoouttypes.h:104
MythVAAPIInteropGLXCopy::m_glxSurface
void * m_glxSurface
Definition: mythvaapiglxinterop.h:39
MythVAAPIInteropGLX::MythVAAPIInteropGLX
MythVAAPIInteropGLX(MythRenderOpenGL *Context, Type InteropType)
Definition: mythvaapiglxinterop.cpp:7
MythRenderOpenGL
Definition: mythrenderopengl.h:99
MythVAAPIInteropGLXPixmap::~MythVAAPIInteropGLXPixmap
~MythVAAPIInteropGLXPixmap() override
Definition: mythvaapiglxinterop.cpp:322
MythDeintType
MythDeintType
Definition: mythframe.h:63
MythVAAPIInteropGLXPixmap
Definition: mythvaapiglxinterop.h:48
MythVAAPIInteropGLX::GetFlagsForFrame
uint GetFlagsForFrame(MythVideoFrame *Frame, FrameScanType Scan)
Definition: mythvaapiglxinterop.cpp:17
MythVAAPIInteropGLXPixmap::InitPixmaps
bool InitPixmaps(void)
Definition: mythvaapiglxinterop.cpp:463
MythVAAPIInteropGLXPixmap::IsSupported
static bool IsSupported(MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:479
MythVAAPIInteropGLX::SetPictureAttribute
int SetPictureAttribute(PictureAttribute Attribute, int Value)
Definition: mythvaapiglxinterop.cpp:157
MythVideoFrame
Definition: mythframe.h:83
MythVAAPIInteropGLXCopy::Acquire
vector< MythVideoTexture * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvaapiglxinterop.cpp:245
MythVAAPIInteropGLX
Definition: mythvaapiglxinterop.h:8
MythVAAPIInteropGLXPixmap::MythVAAPIInteropGLXPixmap
MythVAAPIInteropGLXPixmap(MythRenderOpenGL *Context)
Definition: mythvaapiglxinterop.cpp:311
MythVAAPIInteropGLXCopy::~MythVAAPIInteropGLXCopy
~MythVAAPIInteropGLXCopy() override
Definition: mythvaapiglxinterop.cpp:233
MythVideoColourSpace
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
Definition: mythvideocolourspace.h:21
MythVAAPIInteropGLX::m_basicDeinterlacer
MythDeintType m_basicDeinterlacer
Definition: mythvaapiglxinterop.h:26