#pragma once #include "VideoFrame.hpp" #include #include enum class FeedRuntimeStatus { NoSignal, Placeholder, Bars, Connecting, Live, Reconnecting, Error }; class IVideoFeed { public: virtual ~IVideoFeed() = default; virtual const VideoFrame& getFrame(uint32_t frameCounter) = 0; virtual FeedRuntimeStatus status() const { return FeedRuntimeStatus::NoSignal; } virtual std::string displayName() const { return "NO SIGNAL"; } virtual std::string sourceInfo() const { return ""; } virtual uint64_t frameVersion() const { return 0; } virtual bool hasGrainIndex() const { return false; } virtual uint64_t grainIndex() const { return 0; } virtual float srcAspectRatio() const { return 16.0f / 9.0f; } virtual bool hasV210() const { return false; } virtual const uint8_t* v210Data() const { return nullptr; } virtual uint32_t v210Width() const { return 0; } virtual uint32_t v210Height() const { return 0; } virtual uint32_t v210Stride() const { return 0; } };