57 lines
1.1 KiB
C++
57 lines
1.1 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 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; }
|
|
};
|