MillicastSDK
2.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
metadata.h
Go to the documentation of this file.
1
#pragma once
2
3
#ifdef __cplusplus
4
5
#include <array>
6
#include <memory>
7
#include <optional>
8
#include <vector>
9
10
#include "
exports.h
"
11
namespace
millicast {
12
13
enum class
SeiMessageType {
14
PIC_TIMING,
15
UNREGISTERED_USER_DATA,
16
};
17
18
class
SeiUserUnregisteredData;
19
class
SeiPicTiming;
20
25
class
MILLICAST_API
SeiMessage {
26
public
:
30
virtual
SeiMessageType type()
const
= 0;
31
37
virtual
SeiUserUnregisteredData* sei_user_unregistered_message() {
38
return
nullptr
;
39
}
40
46
virtual
SeiPicTiming* sei_pic_timing_message() {
return
nullptr
; }
47
48
virtual
~SeiMessage() =
default
;
49
};
50
54
class
MILLICAST_API
SeiUserUnregisteredData :
public
SeiMessage {
55
public
:
59
static
constexpr
unsigned
int
UUID_SIZE = 16;
60
61
SeiMessageType type() const final;
62
63
SeiUserUnregisteredData* sei_user_unregistered_message() override;
64
69
virtual std::array<uint8_t, UUID_SIZE> uuid() const = 0;
70
75
virtual const std::vector<uint8_t>& user_data() const = 0;
76
};
77
83
class SeiPicTiming : public SeiMessage {
84
public
:
85
SeiMessageType type() const final;
86
87
SeiPicTiming* sei_pic_timing_message() override;
88
92
struct TimeCode {
93
bool
full{
false
};
94
std::optional<uint8_t> seconds;
95
std::optional<uint8_t> minutes;
96
std::optional<uint8_t> hours;
97
};
98
103
virtual
std::vector<TimeCode> timecodes()
const
= 0;
104
};
105
109
struct
MILLICAST_API
FrameMetadata {
110
FrameMetadata() =
default
;
111
FrameMetadata(FrameMetadata&&) =
default
;
112
FrameMetadata& operator=(FrameMetadata&&) =
default
;
113
FrameMetadata(
const
FrameMetadata&) =
delete
;
114
FrameMetadata& operator=(
const
FrameMetadata&) =
delete
;
115
121
std::vector<std::unique_ptr<SeiMessage>> sei_messages;
122
132
uint32_t rtp_timestamp;
133
};
134
135
}
// namespace millicast
136
137
#endif
// __cplusplus
exports.h
MILLICAST_API
#define MILLICAST_API
Definition
exports.h:51
api
millicast-sdk
metadata.h
Generated by
1.18.0