-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
VideoFrameData.h
51 lines (45 loc) · 844 Bytes
/
VideoFrameData.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef VIDEOFRAMEDATA_H
#define VIDEOFRAMEDATA_H
#include "Image.h"
#include <QImage>
#include <QMetaType>
#include <memory>
#include "AncillaryDataTable.h"
#include "DeckLinkAPI.h"
class VideoFrameData {
public:
enum State {
Idle,
Busy,
Ready,
};
struct Data {
State state = Idle;
Image image;
QByteArray audio;
QImage image_for_view;
bool signal_valid = false;
AncillaryDataStruct ancillary_data = {};
BMDPixelFormat pixfmt = bmdFormatUnspecified;
HDRMetadataStruct hdr_metadata = {};
};
std::shared_ptr<Data> d;
VideoFrameData()
: d(std::make_shared<Data>())
{
}
operator bool () const
{
return d->signal_valid && d->image;
}
int width() const
{
return d->image.width();
}
int height() const
{
return d->image.height();
}
};
Q_DECLARE_METATYPE(VideoFrameData)
#endif // VIDEOFRAMEDATA_H