MythTV master
mythvideovulkan.h
Go to the documentation of this file.
1#ifndef MYTHVULKANVIDEO_H
2#define MYTHVULKANVIDEO_H
3
4// MythTV
6
7#include "mythframe.h"
8#include "mythvideogpu.h"
9#include "videoouttypes.h"
10
11// Std
12#include <vector>
13
15class MythVideoVulkan;
17
19{
20 Q_OBJECT
21
22 public:
24 MythVideoBounds* Bounds, const MythVideoProfilePtr& VideoProfile, const QString &Profile);
25 ~MythVideoVulkan() override;
26
27 void StartFrame () override;
29 void RenderFrame (MythVideoFrame* /*Frame*/, bool /*TopFieldFirst*/,
30 FrameScanType /*Scan*/, StereoscopicMode /*StereoOverride*/, bool /*DrawBorder*/ = false) override;
31 void EndFrame () override;
32 void ResetFrameFormat () override;
33 void ResetTextures () override {}
34
35 protected:
36 void ColourSpaceUpdate(bool /*PrimariesChanged*/) override;
37
38 private:
39 bool SetupFrameFormat (VideoFrameType InputType, VideoFrameType OutputType, QSize Size,
40 VkCommandBuffer CmdBuffer);
41
42 std::vector<MythVideoTextureVulkan*> m_inputTextures;
43};
44
45#endif
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
void StartFrame() override
~MythVideoVulkan() override
void ColourSpaceUpdate(bool) override
bool SetupFrameFormat(VideoFrameType InputType, VideoFrameType OutputType, QSize Size, VkCommandBuffer CmdBuffer)
void ResetTextures() override
void RenderFrame(MythVideoFrame *, bool, FrameScanType, StereoscopicMode, bool=false) override
void PrepareFrame(MythVideoFrame *Frame, FrameScanType=kScan_Progressive) override
void ResetFrameFormat() override
MythVideoVulkan(MythVulkanObject *Vulkan, MythVideoColourSpace *ColourSpace, MythVideoBounds *Bounds, const MythVideoProfilePtr &VideoProfile, const QString &Profile)
void EndFrame() override
std::vector< MythVideoTextureVulkan * > m_inputTextures
VideoFrameType
Definition: mythframe.h:20
std::shared_ptr< MythVideoProfile > MythVideoProfilePtr
Definition: mythvideogpu.h:18
FrameScanType
Definition: videoouttypes.h:95
@ kScan_Progressive
StereoscopicMode