Files
mxl-multiviewer/IVideoFeed.hpp
T
2026-05-18 01:26:21 +03:00

59 lines
1.2 KiB
C++

#pragma once
#include "VideoFrame.hpp"
#include <cstdint>
#include <string>
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 bool hasFrameRate() const { return false; }
virtual double frameRate() const { return 0.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; }
};