MythTV  master
mythmediacodecinterop.h
Go to the documentation of this file.
1 #ifndef MYTHMEDIACODECINTEROP_H
2 #define MYTHMEDIACODECINTEROP_H
3 
4 // Qt
5 #include <QMutex>
6 #include <QWaitCondition>
7 #if QT_VERSION < QT_VERSION_CHECK(6,0,0)
8 #include <QtAndroidExtras>
9 #else
10 #include <QJniEnvironment>
11 #include <QJniObject>
12 #define QAndroidJniEnvironment QJniEnvironment
13 #define QAndroidJniObject QJniObject
14 #endif
15 
16 // MythTV
17 #include "mythopenglinterop.h"
18 
19 extern "C" MTV_PUBLIC void Java_org_mythtv_video_SurfaceTextureListener_frameAvailable(JNIEnv*, jobject, jlong Wait, jobject);
20 
22 {
23  public:
25  virtual std::vector<MythVideoTextureOpenGL*> Acquire(MythRenderOpenGL *Context,
26  MythVideoColourSpace *ColourSpace,
27  MythVideoFrame *Frame, FrameScanType Scan) override;
28  void* GetSurface(void);
29 
30  protected:
32  ~MythMediaCodecInterop() override;
33  bool Initialise(QSize Size);
34 
35  private:
36  QWaitCondition m_frameWait;
42  jfloatArray m_textureTransform;
43  QMatrix4x4 m_transform;
44 };
45 
46 #endif // MYTHMEDIACODECINTEROP_H
QAndroidJniObject
#define QAndroidJniObject
Definition: mythmediacodecinterop.h:13
MythMediaCodecInterop::MythMediaCodecInterop
MythMediaCodecInterop(MythPlayerUI *Player, MythRenderOpenGL *Context)
Definition: mythmediacodecinterop.cpp:30
mythopenglinterop.h
Frame
Definition: zmdefines.h:93
MythMediaCodecInterop::Initialise
bool Initialise(QSize Size)
Definition: mythmediacodecinterop.cpp:63
FrameScanType
FrameScanType
Definition: videoouttypes.h:94
MythMediaCodecInterop::m_frameWait
QWaitCondition m_frameWait
Definition: mythmediacodecinterop.h:36
MythMediaCodecInterop::m_colourSpaceInitialised
bool m_colourSpaceInitialised
Definition: mythmediacodecinterop.h:38
MythPlayerUI
Definition: mythplayerui.h:10
MythOpenGLInterop
Definition: mythopenglinterop.h:17
MythMediaCodecInterop::~MythMediaCodecInterop
~MythMediaCodecInterop() override
Definition: mythmediacodecinterop.cpp:46
MythMediaCodecInterop::m_surfaceListener
QAndroidJniObject m_surfaceListener
Definition: mythmediacodecinterop.h:41
MythMediaCodecInterop::m_surfaceTexture
QAndroidJniObject m_surfaceTexture
Definition: mythmediacodecinterop.h:40
MythMediaCodecInterop::GetSurface
void * GetSurface(void)
Definition: mythmediacodecinterop.cpp:51
MythMediaCodecInterop::m_frameWaitLock
QMutex m_frameWaitLock
Definition: mythmediacodecinterop.h:37
MythMediaCodecInterop::m_surface
QAndroidJniObject m_surface
Definition: mythmediacodecinterop.h:39
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MythRenderOpenGL
Definition: mythrenderopengl.h:96
MythMediaCodecInterop
Definition: mythmediacodecinterop.h:21
MythMediaCodecInterop::m_textureTransform
jfloatArray m_textureTransform
Definition: mythmediacodecinterop.h:42
Player
Definition: zmliveplayer.h:34
MythVideoFrame
Definition: mythframe.h:88
MythMediaCodecInterop::Acquire
virtual std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythmediacodecinterop.cpp:117
MythVideoColourSpace
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
Definition: mythvideocolourspace.h:18
MythMediaCodecInterop::CreateMediaCodec
static MythMediaCodecInterop * CreateMediaCodec(MythPlayerUI *Player, MythRenderOpenGL *Context, QSize Size)
Definition: mythmediacodecinterop.cpp:14
MythMediaCodecInterop::m_transform
QMatrix4x4 m_transform
Definition: mythmediacodecinterop.h:43
Java_org_mythtv_video_SurfaceTextureListener_frameAvailable
MTV_PUBLIC void Java_org_mythtv_video_SurfaceTextureListener_frameAvailable(JNIEnv *, jobject, jlong Wait, jobject)
Definition: mythmediacodecinterop.cpp:56