MythTV master
mythvtbinterop.h
Go to the documentation of this file.
1#ifndef MYTHVTBINTEROP_H
2#define MYTHVTBINTEROP_H
3
4// MythTV
6
7// OSX
8#include <CoreVideo/CoreVideo.h>
9
11{
12 public:
13 static void GetVTBTypes(MythRenderOpenGL* Render, MythInteropGPU::InteropMap& Types);
15 std::vector<MythVideoTextureOpenGL*> Acquire(MythRenderOpenGL* Context,
16 MythVideoColourSpace* ColourSpace,
18 FrameScanType Scan) override;
19
20 protected:
21 CVPixelBufferRef Verify(MythRenderOpenGL* Context, MythVideoColourSpace* ColourSpace,
24 ~MythVTBInterop() override = default;
25
26};
27
29{
30 public:
32 ~MythVTBSurfaceInterop() override= default;
33
34
35 std::vector<MythVideoTextureOpenGL*> Acquire(MythRenderOpenGL* Context,
36 MythVideoColourSpace* ColourSpace,
38 FrameScanType Scan) override;
39
40 private:
41
42 void RotateReferenceFrames(IOSurfaceID Buffer);
43 std::vector<MythVideoTextureOpenGL*> GetReferenceFrames(void);
44 QVector<IOSurfaceID> m_referenceFrames { };
45};
46
47#endif
std::map< VideoFrameType, InteropTypes > InteropMap
CVPixelBufferRef Verify(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame)
static MythVTBInterop * CreateVTB(MythPlayerUI *Player, MythRenderOpenGL *Context)
static void GetVTBTypes(MythRenderOpenGL *Render, MythInteropGPU::InteropMap &Types)
MythVTBInterop(MythPlayerUI *Player, MythRenderOpenGL *Context, MythOpenGLInterop::InteropType Type)
~MythVTBInterop() override=default
std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
MythVTBSurfaceInterop(MythPlayerUI *Player, MythRenderOpenGL *Context)
QVector< IOSurfaceID > m_referenceFrames
std::vector< MythVideoTextureOpenGL * > GetReferenceFrames(void)
std::vector< MythVideoTextureOpenGL * > Acquire(MythRenderOpenGL *Context, MythVideoColourSpace *ColourSpace, MythVideoFrame *Frame, FrameScanType Scan) override
void RotateReferenceFrames(IOSurfaceID Buffer)
~MythVTBSurfaceInterop() override=default
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
FrameScanType
Definition: videoouttypes.h:95