MillicastSDK 2.5.0
Loading...
Searching...
No Matches
frames.h
Go to the documentation of this file.
1#ifndef MILLICAST_API_FRAMES_H
2#define MILLICAST_API_FRAMES_H
3
4#ifdef __cplusplus
5
6#include "exports.h"
7#include "capabilities.h"
8
9// video //////////////////////////////////////////////////////////////////////
10
11namespace millicast {
12
17class MILLICAST_API VideoFrame {
18 public:
19 VideoFrame() = default;
20 ~VideoFrame() = default;
21
22 VideoFrame(const VideoFrame&) = delete;
23 VideoFrame(VideoFrame&&) = delete;
24
30 [[nodiscard]] virtual int width() const = 0;
31
37 [[nodiscard]] virtual int height() const = 0;
38
44 [[nodiscard]] virtual VideoType frame_type() const = 0;
45
53 [[nodiscard]] virtual uint32_t timestamp() const { return 0; };
54
61 [[nodiscard]] virtual PrimaryID primaries() const = 0;
62
68 [[nodiscard]] virtual TransferID transfer() const = 0;
69
75 [[nodiscard]] virtual MatrixID matrix() const = 0;
76
82 [[nodiscard]] virtual RangeID range() const = 0;
83
88 [[nodiscard]] virtual uint32_t size(VideoType type) const = 0;
89
98 virtual void get_buffer(VideoType type, uint8_t* buffer) const = 0;
99};
100
101// audio //////////////////////////////////////////////////////////////////////
102
107struct MILLICAST_API AudioFrame {
108 const void* data;
109 int bits_per_sample;
111 int sample_rate;
112 size_t number_of_channels;
113 size_t number_of_frames;
119};
120
121} // namespace millicast
122
123#endif /* FRAMES_H */
124#endif // __cplusplus
#define MILLICAST_API
Definition exports.h:51