31 #ifndef OPENSHOT_DECKLINK_READER_H
32 #define OPENSHOT_DECKLINK_READER_H
67 IDeckLinkInput *deckLinkInput;
68 IDeckLinkDisplayModeIterator *displayModeIterator;
69 IDeckLinkOutput *m_deckLinkOutput;
70 IDeckLinkVideoConversion *m_deckLinkConverter;
71 pthread_mutex_t sleepMutex;
72 pthread_cond_t sleepCond;
73 IDeckLinkIterator *deckLinkIterator;
75 IDeckLinkDisplayMode *displayMode;
76 BMDVideoInputFlags inputFlags;
77 BMDDisplayMode selectedDisplayMode;
78 BMDPixelFormat pixelFormat;
82 bool foundDisplayMode;
86 int g_audioSampleDepth;
89 BMDTimeValue frameRateDuration, frameRateScale;
90 const char *displayModeName;
96 DecklinkReader(
int device,
int video_mode,
int pixel_format,
int channels,
int sample_depth);
110 std::shared_ptr<Frame>
GetFrame(int64_t requested_frame);
117 std::string
Name() {
return "DecklinkReader"; };
120 std::string
Json()
const override;
121 void SetJson(
const std::string value);
Header file for CacheMemory class.
Header file for Frame class.
Header file for ReaderBase class.
This class is a memory-based cache manager for Frame objects.
This class uses the Blackmagic Decklink libraries, to open video streams on Blackmagic devices.
std::shared_ptr< Frame > GetFrame(int64_t requested_frame)
Json::Value JsonValue() const
Generate Json::Value for this object.
std::string Name()
Return the type name of the class.
void SetJson(const std::string value)
Load JSON string into this object.
unsigned long GetCurrentFrameNumber()
void Open()
Open device and video stream - which is called by the constructor automatically.
CacheMemory * GetCache()
Get the cache object used by this reader (always returns NULL for this reader)
std::string Json() const override
Generate JSON string of this object.
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
DecklinkReader(int device, int video_mode, int pixel_format, int channels, int sample_depth)
bool IsOpen()
Determine if reader is open or closed.
This abstract class is the base class, used by all readers in libopenshot.
This namespace is the default namespace for all code in the openshot library.