Go to the documentation of this file.
2 #include <QGuiApplication>
13 #define LOC QString("VulkanVideo: ")
17 :
MythVideoGPU(Vulkan->Render(), ColourSpace, Bounds, VideoProfile, Profile),
40 LOG(VB_GENERAL, LOG_INFO,
LOC +
41 QString(
"New frame format: %1:%2 %3x%4 -> %6:%7 %8x%9")
47 .arg(Size.width()).arg(Size.height()));
77 QEvent update(QEvent::UpdateRequest);
89 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid hardware video frame");
96 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Invalid video frame");
103 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Frame format is not supported");
107 VkCommandBuffer cmdbuffer =
nullptr;
void ResetFrameFormat() override
uint64_t m_discontinuityCounter
bool UpdateColourSpace(const MythVideoFrame *Frame)
Set the current colourspace to use.
static bool VERBOSE_LEVEL_CHECK(uint64_t mask, LogLevel_t level)
MythVideoColourSpace * m_videoColourSpace
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
static bool HardwareFormat(VideoFrameType Type)
bool SetupFrameFormat(VideoFrameType InputType, VideoFrameType OutputType, QSize Size, VkCommandBuffer CmdBuffer)
VkCommandBuffer CreateSingleUseCommandBuffer(void)
void RenderFrame(MythVideoFrame *, bool, FrameScanType, StereoscopicMode, bool=false) override
~MythVideoVulkan() override
void ColourSpaceUpdate(bool) override
static bool YUVFormat(VideoFrameType Type)
void BeginDebugRegion(VkCommandBuffer CommandBuffer, const char *Name, MythVulkan4F Color)
MythRenderVulkan * m_vulkanRender
void StartFrame() override
void PrepareFrame(MythVideoFrame *Frame, FrameScanType=kScan_Progressive) override
void SetFrameExpected(void)
VideoFrameType m_outputType
static std::vector< MythVideoTextureVulkan * > CreateTextures(MythVulkanObject *Vulkan, VkCommandBuffer CommandBuffer, VideoFrameType Type, VideoFrameType Format, QSize Size)
MythVideoVulkan(MythVulkanObject *Vulkan, MythVideoColourSpace *ColourSpace, MythVideoBounds *Bounds, const MythVideoProfilePtr &VideoProfile, const QString &Profile)
static const MythVulkan4F kDebugBlue
void EndDebugRegion(VkCommandBuffer CommandBuffer)
static QString FormatDescription(VideoFrameType Type)
MythWindowVulkan * m_vulkanWindow
std::vector< MythVideoTextureVulkan * > m_inputTextures
bool IsValidVulkan() const
virtual void ResetFrameFormat()
std::shared_ptr< MythVideoProfile > MythVideoProfilePtr
static void DeleteTextures(MythVulkanObject *Vulkan, VkCommandBuffer CommandBuffer, std::vector< MythVideoTextureVulkan * > &Textures)
void FinishSingleUseCommandBuffer(VkCommandBuffer &Buffer)
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
VideoFrameType m_inputType