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 #include <QtAndroidExtras>
8 
9 // MythTV
10 #include "mythopenglinterop.h"
11 
12 extern "C" MTV_PUBLIC void Java_org_mythtv_video_SurfaceTextureListener_frameAvailable(JNIEnv*, jobject, jlong Wait, jobject);
13 
15 {
16  public:
18  virtual std::vector<MythVideoTextureOpenGL*> Acquire(MythRenderOpenGL *Context,
19  MythVideoColourSpace *ColourSpace,
20  MythVideoFrame *Frame, FrameScanType Scan) override;
21  void* GetSurface(void);
22 
23  protected:
25  ~MythMediaCodecInterop() override;
26  bool Initialise(QSize Size);
27 
28  private:
29  QWaitCondition m_frameWait;
32  QAndroidJniObject m_surface;
33  QAndroidJniObject m_surfaceTexture;
34  QAndroidJniObject m_surfaceListener;
35  jfloatArray m_textureTransform;
36  QMatrix4x4 m_transform;
37 };
38 
39 #endif // MYTHMEDIACODECINTEROP_H
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:29
MythMediaCodecInterop::m_colourSpaceInitialised
bool m_colourSpaceInitialised
Definition: mythmediacodecinterop.h:31
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:34
MythMediaCodecInterop::m_surfaceTexture
QAndroidJniObject m_surfaceTexture
Definition: mythmediacodecinterop.h:33
MythMediaCodecInterop::GetSurface
void * GetSurface(void)
Definition: mythmediacodecinterop.cpp:51
MythMediaCodecInterop::m_frameWaitLock
QMutex m_frameWaitLock
Definition: mythmediacodecinterop.h:30
MythMediaCodecInterop::m_surface
QAndroidJniObject m_surface
Definition: mythmediacodecinterop.h:32
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MythRenderOpenGL
Definition: mythrenderopengl.h:100
MythMediaCodecInterop
Definition: mythmediacodecinterop.h:14
MythMediaCodecInterop::m_textureTransform
jfloatArray m_textureTransform
Definition: mythmediacodecinterop.h:35
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:36
Java_org_mythtv_video_SurfaceTextureListener_frameAvailable
MTV_PUBLIC void Java_org_mythtv_video_SurfaceTextureListener_frameAvailable(JNIEnv *, jobject, jlong Wait, jobject)
Definition: mythmediacodecinterop.cpp:56