0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/plugins/decklink/decklink.hpp
jp9000 c77544f546 decklink: Add option to select pixel format
This replaces the name-based detection of the 4K intensity pro, and
allows other devices to be able to use the BGRA pixel format, if the
user so chooses.
2015-10-13 19:08:01 -07:00

48 lines
1.2 KiB
C++

#pragma once
#include "platform.hpp"
#include <obs-module.h>
#include <map>
#include <vector>
#include <mutex>
class DeckLinkDeviceDiscovery;
class DeckLinkDeviceInstance;
class DeckLinkDevice;
class DeckLinkDeviceMode;
class DeckLink {
protected:
ComPtr<DeckLinkDeviceInstance> instance;
DeckLinkDeviceDiscovery *discovery;
bool isCapturing = false;
obs_source_t *source;
volatile long activateRefs = 0;
std::recursive_mutex deviceMutex;
BMDPixelFormat pixelFormat = bmdFormat8BitYUV;
void SaveSettings();
static void DevicesChanged(void *param, DeckLinkDevice *device,
bool added);
public:
DeckLink(obs_source_t *source, DeckLinkDeviceDiscovery *discovery);
virtual ~DeckLink(void);
DeckLinkDevice *GetDevice() const;
long long GetActiveModeId(void) const;
obs_source_t *GetSource(void) const;
inline BMDPixelFormat GetPixelFormat() const {return pixelFormat;}
inline void SetPixelFormat(BMDPixelFormat format)
{
pixelFormat = format;
}
bool Activate(DeckLinkDevice *device, long long modeId);
void Deactivate();
};