Go to the documentation of this file. 1 #ifndef MYTH_OPENGL_VIDEO_H_
2 #define MYTH_OPENGL_VIDEO_H_
60 QSize Size, GLenum TextureTarget);
62 void BindTextures (
bool Deinterlacing, std::vector<MythVideoTextureOpenGL*>& Current,
63 std::vector<MythGLTexture*>& Textures);
72 std::array<QOpenGLShaderProgram*,ShaderCount>
m_shaders {
nullptr };
MythOpenGLTonemap * m_toneMap
void ResetTextures() override
Clear reference frames after a seek as they will contain old images.
MythVideoTextureOpenGL * m_frameBufferTexture
MythOpenGLVideo(MythRenderOpenGL *Render, MythVideoColourSpace *ColourSpace, MythVideoBounds *Bounds, const MythVideoProfilePtr &VideoProfile, const QString &Profile)
~MythOpenGLVideo() override
void PrepareFrame(MythVideoFrame *Frame, FrameScanType Scan=kScan_Progressive) override
Update the current input texture using the data from the given video frame.
void StartFrame() override
bool SetupFrameFormat(VideoFrameType InputType, VideoFrameType OutputType, QSize Size, GLenum TextureTarget)
MythDeintType m_fallbackDeinterlacer
QOpenGLFramebufferObject * m_frameBuffer
QOpenGLFunctions::OpenGLFeatures m_features
void BindTextures(bool Deinterlacing, std::vector< MythVideoTextureOpenGL * > &Current, std::vector< MythGLTexture * > &Textures)
void ColourSpaceUpdate(bool PrimariesChanged) override
MythRenderOpenGL * m_openglRender
static QString TypeToProfile(VideoFrameType Type)
void RenderFrame(MythVideoFrame *Frame, bool TopFieldFirst, FrameScanType Scan, StereoscopicMode StereoOverride, bool DrawBorder=false) override
std::vector< MythVideoTextureOpenGL * > m_inputTextures
bool m_chromaUpsamplingFilter
void SetupBicubic(VideoResizing &Resize)
bool AddDeinterlacer(const MythVideoFrame *Frame, FrameScanType Scan, MythDeintType Filter=DEINT_SHADER, bool CreateReferences=true)
std::vector< MythVideoTextureOpenGL * > m_prevTextures
void UpdateShaderParameters()
void CleanupDeinterlacers()
std::array< QOpenGLShaderProgram *, ShaderCount > m_shaders
bool CreateVideoShader(VideoShaderType Type, MythDeintType Deint=DEINT_NONE)
Create the appropriate shader for the operation Type.
std::vector< MythVideoTextureOpenGL * > m_nextTextures
std::shared_ptr< MythVideoProfile > MythVideoProfilePtr
std::array< int, ShaderCount > m_shaderCost
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
QString GetProfile() const override
void ResetFrameFormat() override