MythTV master
mythegldmabuf.h
Go to the documentation of this file.
1#ifndef MYTHEGLDMABUF_H
2#define MYTHEGLDMABUF_H
3
4// MythTV
5#include "mythframe.h"
6#include "videoouttypes.h"
7
8// Std
9#include <vector>
10
13struct AVDRMFrameDescriptor;
14
16{
17 public:
18 explicit MythEGLDMABUF(MythRenderOpenGL *Context);
19 ~MythEGLDMABUF() = default;
20 static bool HaveDMABuf(MythRenderOpenGL *Context);
21 std::vector<MythVideoTextureOpenGL*> CreateTextures(AVDRMFrameDescriptor* Desc,
22 MythRenderOpenGL *Context,
24 bool UseSeparate,
26 static void ClearDMATextures(MythRenderOpenGL *Context,
27 std::vector<MythVideoTextureOpenGL*>& Textures) ;
28
29 private:
30 std::vector<MythVideoTextureOpenGL*> CreateComposed(AVDRMFrameDescriptor* Desc,
31 MythRenderOpenGL *Context,
33 FrameScanType Scan) const;
34 std::vector<MythVideoTextureOpenGL*> CreateSeparate(AVDRMFrameDescriptor* Desc,
35 MythRenderOpenGL *Context,
36 MythVideoFrame *Frame) const;
37 std::vector<MythVideoTextureOpenGL*> CreateSeparate2(AVDRMFrameDescriptor* Desc,
38 MythRenderOpenGL *Context,
39 MythVideoFrame *Frame) const;
40 bool m_useModifiers { false };
41};
42
43#endif
MythEGLDMABUF(MythRenderOpenGL *Context)
~MythEGLDMABUF()=default
static void ClearDMATextures(MythRenderOpenGL *Context, std::vector< MythVideoTextureOpenGL * > &Textures)
static bool HaveDMABuf(MythRenderOpenGL *Context)
std::vector< MythVideoTextureOpenGL * > CreateSeparate2(AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame) const
Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.
std::vector< MythVideoTextureOpenGL * > CreateComposed(AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame, FrameScanType Scan) const
Create a single RGBA32 texture using the provided AVDRMFramDescriptor.
std::vector< MythVideoTextureOpenGL * > CreateSeparate(AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame) const
Create multiple textures that represent the planes for the given AVDRMFrameDescriptor.
std::vector< MythVideoTextureOpenGL * > CreateTextures(AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame, bool UseSeparate, FrameScanType Scan=kScan_Progressive)
FrameScanType
Definition: videoouttypes.h:95
@ kScan_Progressive