MillicastSDK 2.5.0
Loading...
Searching...
No Matches
encoded_frames.h
Go to the documentation of this file.
1#ifndef MILLICAST_API_FRAME_TRANSFORMER_H
2#define MILLICAST_API_FRAME_TRANSFORMER_H
3
4#ifdef __cplusplus
5
6#include <functional>
7#include <optional>
8
9#include "exports.h"
10#include "span.h"
11
12namespace millicast {
13
14class MILLICAST_API EncodedFrame {
15 public:
20 [[nodiscard]] virtual Span<const uint8_t> data() const = 0;
21
29 virtual void set_metadata(Span<const uint8_t> metadata) = 0;
30
37 [[nodiscard]] virtual Span<const uint8_t> metadata() const = 0;
38
43 [[nodiscard]] virtual uint32_t timestamp() const = 0;
44
49 [[nodiscard]] virtual uint32_t ssrc() const = 0;
50};
51
52class MILLICAST_API EncodedVideoFrame : public EncodedFrame {
53 public:
54 virtual ~EncodedVideoFrame() = default;
55
60 [[nodiscard]] virtual int width() const = 0;
61
66 [[nodiscard]] virtual int height() const = 0;
67
72 [[nodiscard]] virtual bool is_keyframe() const = 0;
73
78 [[nodiscard]] virtual int64_t frame_id() const = 0;
79
85 [[nodiscard]] virtual int temporal_index() const = 0;
86
92 [[nodiscard]] virtual int spatial_index() const = 0;
93};
94
95class MILLICAST_API EncodedAudioFrame : public EncodedFrame {
96 public:
97 virtual ~EncodedAudioFrame() = default;
98
103 [[nodiscard]] virtual uint16_t sequence_number() const = 0;
104
113 [[nodiscard]] virtual uint64_t absolute_capture_time() const = 0;
114};
115
119using EncodedVideoFrameCallback = std::function<void(EncodedVideoFrame&)>;
120using EncodedAudioFrameCallback = std::function<void(EncodedAudioFrame&)>;
121}; // namespace millicast
122
123#endif // __cplusplus
124#endif /* MILLICAST_API_FRAME_TRANSFORMER_H */
#define MILLICAST_API
Definition exports.h:51