obs-studio/plugins/decklink/decklink-device-mode.hpp
jpark37 ac87106f03 decklink: Schedule video frames for playback
DisplayVideoFrameSync is unusable at 4K, over 20 milliseconds per call.
ScheduleVideoFrame is probably what we should have been using all along.
2023-03-28 11:19:43 -07:00

32 lines
736 B
C++

#pragma once
#include "platform.hpp"
#include <string>
#define MODE_ID_AUTO -1
class DeckLinkDeviceMode {
protected:
long long id;
ComPtr<IDeckLinkDisplayMode> mode;
std::string name;
public:
DeckLinkDeviceMode(IDeckLinkDisplayMode *mode, long long id);
DeckLinkDeviceMode(const std::string &name, long long id);
virtual ~DeckLinkDeviceMode(void);
BMDDisplayMode GetDisplayMode(void) const;
BMDDisplayModeFlags GetDisplayModeFlags(void) const;
long long GetId(void) const;
const std::string &GetName(void) const;
bool IsEqualFrameRate(int64_t num, int64_t den);
void SetMode(IDeckLinkDisplayMode *mode);
int GetWidth();
int GetHeight();
bool GetFrameRate(BMDTimeValue *frameDuration, BMDTimeScale *timeScale);
};