13enum class SeiMessageType {
15 UNREGISTERED_USER_DATA,
18class SeiUserUnregisteredData;
30 virtual SeiMessageType type()
const = 0;
37 virtual SeiUserUnregisteredData* sei_user_unregistered_message() {
46 virtual SeiPicTiming* sei_pic_timing_message() {
return nullptr; }
48 virtual ~SeiMessage() =
default;
54class MILLICAST_API SeiUserUnregisteredData :
public SeiMessage {
59 static constexpr unsigned int UUID_SIZE = 16;
61 SeiMessageType type() const final;
63 SeiUserUnregisteredData* sei_user_unregistered_message() override;
69 virtual std::array<uint8_t, UUID_SIZE> uuid() const = 0;
75 virtual const std::vector<uint8_t>& user_data() const = 0;
83class SeiPicTiming : public SeiMessage {
85 SeiMessageType type() const final;
87 SeiPicTiming* sei_pic_timing_message() override;
94 std::optional<uint8_t> seconds;
95 std::optional<uint8_t> minutes;
96 std::optional<uint8_t> hours;
103 virtual std::vector<TimeCode> timecodes()
const = 0;
110 FrameMetadata() =
default;
111 FrameMetadata(FrameMetadata&&) =
default;
112 FrameMetadata& operator=(FrameMetadata&&) =
default;
113 FrameMetadata(
const FrameMetadata&) =
delete;
114 FrameMetadata& operator=(
const FrameMetadata&) =
delete;
121 std::vector<std::unique_ptr<SeiMessage>> sei_messages;
132 uint32_t rtp_timestamp;
#define MILLICAST_API
Definition exports.h:51