EncodedFrame.cpp
Go to the documentation of this file.
2 
4 
5 namespace dai {
6 
7 std::shared_ptr<RawBuffer> EncodedFrame::serialize() const {
8  return raw;
9 }
10 
11 EncodedFrame::EncodedFrame() : Buffer(std::make_shared<RawEncodedFrame>()), frame(*dynamic_cast<RawEncodedFrame*>(raw.get())) {
12  // set timestamp to now
13  setTimestamp(std::chrono::steady_clock::now());
14 }
15 EncodedFrame::EncodedFrame(std::shared_ptr<RawEncodedFrame> ptr) : Buffer(std::move(ptr)), frame(*dynamic_cast<RawEncodedFrame*>(raw.get())) {}
16 
17 // getters
18 unsigned int EncodedFrame::getInstanceNum() const {
19  return frame.instanceNum;
20 }
21 unsigned int EncodedFrame::getWidth() const {
22  return frame.width;
23 }
24 unsigned int EncodedFrame::getHeight() const {
25  return frame.height;
26 }
27 std::chrono::microseconds EncodedFrame::getExposureTime() const {
28  return std::chrono::microseconds(frame.cam.exposureTimeUs);
29 }
31  return frame.cam.sensitivityIso;
32 }
34  return frame.cam.wbColorTemp;
35 }
37  return frame.cam.lensPosition;
38 }
40  return frame.cam.lensPositionRaw;
41 }
42 unsigned int EncodedFrame::getQuality() const {
43  return frame.quality;
44 }
45 unsigned int EncodedFrame::getBitrate() const {
46  return frame.bitrate;
47 }
49  return frame.lossless;
50 }
54  switch(frame.profile) {
56  frameType = utility::SliceType::I;
57  break;
59  frameType = utility::getTypesH264(frame.data, true)[0];
60  break;
62  frameType = utility::getTypesH265(frame.data, true)[0];
63  break;
64  }
65  switch(frameType) {
68  break;
71  break;
74  break;
77  break;
80  break;
83  break;
84  }
85  }
86  return frame.type;
87 }
89  return frame.profile;
90 }
91 
92 // setters
93 EncodedFrame& EncodedFrame::setTimestamp(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
94  // Set timestamp from timepoint
95  return static_cast<EncodedFrame&>(Buffer::setTimestamp(tp));
96 }
97 EncodedFrame& EncodedFrame::setTimestampDevice(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
98  // Set timestamp from timepoint
99  return static_cast<EncodedFrame&>(Buffer::setTimestampDevice(tp));
100 }
102  return static_cast<EncodedFrame&>(Buffer::setSequenceNum(sequenceNum));
103 }
104 EncodedFrame& EncodedFrame::setInstanceNum(unsigned int instanceNum) {
105  frame.instanceNum = instanceNum;
106  return *this;
107 }
108 EncodedFrame& EncodedFrame::setWidth(unsigned int width) {
109  frame.width = width;
110  return *this;
111 }
112 EncodedFrame& EncodedFrame::setHeight(unsigned int height) {
113  frame.height = height;
114  return *this;
115 }
116 EncodedFrame& EncodedFrame::setQuality(unsigned int quality) {
117  frame.quality = quality;
118  return *this;
119 }
120 EncodedFrame& EncodedFrame::setBitrate(unsigned int bitrate) {
121  frame.bitrate = bitrate;
122  return *this;
123 }
124 
126  frame.lossless = lossless;
127  return *this;
128 }
130  frame.type = frameType;
131  return *this;
132 }
134  frame.profile = profile;
135  return *this;
136 }
137 
138 } // namespace dai
dai::RawEncodedFrame::CameraSettings::lensPositionRaw
float lensPositionRaw
Definition: RawEncodedFrame.hpp:18
dai::EncodedFrame::getColorTemperature
int getColorTemperature() const
Definition: EncodedFrame.cpp:33
dai::EncodedFrame::getQuality
unsigned int getQuality() const
Definition: EncodedFrame.cpp:42
dai::RawEncodedFrame::CameraSettings::lensPosition
int32_t lensPosition
Definition: RawEncodedFrame.hpp:16
dai::EncodedFrame::getBitrate
unsigned int getBitrate() const
Definition: EncodedFrame.cpp:45
dai::utility::getTypesH265
std::vector< SliceType > getTypesH265(buf &bs, bool breakOnFirst)
Definition: H26xParsers.cpp:287
dai::EncodedFrame::getLossless
bool getLossless() const
Definition: EncodedFrame.cpp:48
dai::EncodedFrame::getFrameType
FrameType getFrameType() const
Definition: EncodedFrame.cpp:51
DAI_SPAN_NAMESPACE_NAME::get
constexpr auto get(span< E, S > s) -> decltype(s[N])
Definition: span.hpp:491
dai::utility::SliceType::Unknown
@ Unknown
dai::RawEncodedFrame::type
FrameType type
Definition: RawEncodedFrame.hpp:34
dai::RawEncodedFrame::bitrate
uint32_t bitrate
Definition: RawEncodedFrame.hpp:30
dai::RawEncodedFrame::Profile::AVC
@ AVC
dai::EncodedFrame::getLensPosition
int getLensPosition() const
Definition: EncodedFrame.cpp:36
dai::RawEncodedFrame::CameraSettings::wbColorTemp
int32_t wbColorTemp
Definition: RawEncodedFrame.hpp:17
dai::RawEncodedFrame::FrameType::Unknown
@ Unknown
dai::RawEncodedFrame::profile
Profile profile
Definition: RawEncodedFrame.hpp:31
dai::EncodedFrame
Definition: EncodedFrame.hpp:17
dai::RawEncodedFrame::Profile
Profile
Definition: RawEncodedFrame.hpp:10
dai::RawEncodedFrame::quality
uint32_t quality
Definition: RawEncodedFrame.hpp:29
dai::EncodedFrame::getProfile
Profile getProfile() const
Definition: EncodedFrame.cpp:88
dai::EncodedFrame::setBitrate
EncodedFrame & setBitrate(unsigned int bitrate)
Definition: EncodedFrame.cpp:120
dai::RawEncodedFrame::height
unsigned int height
Definition: RawEncodedFrame.hpp:27
dai::EncodedFrame::setLossless
EncodedFrame & setLossless(bool lossless)
Definition: EncodedFrame.cpp:125
dai::RawEncodedFrame::FrameType::I
@ I
dai::Buffer::setTimestamp
Buffer & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: Buffer.cpp:39
dai::EncodedFrame::getInstanceNum
unsigned int getInstanceNum() const
Definition: EncodedFrame.cpp:18
dai::RawEncodedFrame::FrameType::B
@ B
dai::EncodedFrame::setQuality
EncodedFrame & setQuality(unsigned int quality)
Definition: EncodedFrame.cpp:116
dai::utility::SliceType::P
@ P
dai::RawEncodedFrame::Profile::JPEG
@ JPEG
dai::utility::SliceType::B
@ B
dai::EncodedFrame::getWidth
unsigned int getWidth() const
Definition: EncodedFrame.cpp:21
dai::Buffer::setTimestampDevice
Buffer & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: Buffer.cpp:47
dai::EncodedFrame::setTimestamp
EncodedFrame & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > tp)
Definition: EncodedFrame.cpp:93
dai::utility::SliceType::SP
@ SP
dai::EncodedFrame::getSensitivity
int getSensitivity() const
Definition: EncodedFrame.cpp:30
dai::utility::SliceType::I
@ I
dai::RawEncodedFrame::CameraSettings::exposureTimeUs
int32_t exposureTimeUs
Definition: RawEncodedFrame.hpp:14
dai::utility::getTypesH264
std::vector< SliceType > getTypesH264(buf &bs, bool breakOnFirst)
Definition: H26xParsers.cpp:284
dai::RawEncodedFrame
Definition: RawEncodedFrame.hpp:9
H26xParsers.hpp
dai::RawEncodedFrame::instanceNum
uint32_t instanceNum
Definition: RawEncodedFrame.hpp:24
dai::EncodedFrame::frame
RawEncodedFrame & frame
Definition: EncodedFrame.hpp:19
dai::utility::SliceType
SliceType
Definition: H26xParsers.hpp:10
dai::Buffer
Base message - buffer of binary data.
Definition: Buffer.hpp:13
dai::EncodedFrame::EncodedFrame
EncodedFrame()
Definition: EncodedFrame.cpp:11
dai::RawEncodedFrame::FrameType
FrameType
Definition: RawEncodedFrame.hpp:11
dai::RawBuffer::data
std::vector< std::uint8_t > data
Definition: RawBuffer.hpp:14
dai::EncodedFrame::getLensPositionRaw
float getLensPositionRaw() const
Definition: EncodedFrame.cpp:39
dai::EncodedFrame::setWidth
EncodedFrame & setWidth(unsigned int width)
Definition: EncodedFrame.cpp:108
dai::RawEncodedFrame::cam
CameraSettings cam
Definition: RawEncodedFrame.hpp:23
std
Definition: Node.hpp:366
dai::EncodedFrame::setTimestampDevice
EncodedFrame & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > tp)
Definition: EncodedFrame.cpp:97
dai::RawEncodedFrame::FrameType::P
@ P
dai::EncodedFrame::setProfile
EncodedFrame & setProfile(Profile profile)
Definition: EncodedFrame.cpp:133
dai::EncodedFrame::setInstanceNum
EncodedFrame & setInstanceNum(unsigned int instance)
Definition: EncodedFrame.cpp:104
dai::EncodedFrame::getHeight
unsigned int getHeight() const
Definition: EncodedFrame.cpp:24
dai::utility::SliceType::SI
@ SI
dai::EncodedFrame::getExposureTime
std::chrono::microseconds getExposureTime() const
Definition: EncodedFrame.cpp:27
dai::EncodedFrame::setHeight
EncodedFrame & setHeight(unsigned int height)
Definition: EncodedFrame.cpp:112
dai::ADatatype::raw
std::shared_ptr< RawBuffer > raw
Definition: ADatatype.hpp:15
EncodedFrame.hpp
dai::RawEncodedFrame::width
unsigned int width
Definition: RawEncodedFrame.hpp:26
dai::EncodedFrame::serialize
std::shared_ptr< RawBuffer > serialize() const override
Definition: EncodedFrame.cpp:7
dai::EncodedFrame::setSequenceNum
EncodedFrame & setSequenceNum(int64_t seq)
Definition: EncodedFrame.cpp:101
dai
Definition: CameraExposureOffset.hpp:6
dai::RawEncodedFrame::lossless
bool lossless
Definition: RawEncodedFrame.hpp:33
dai::EncodedFrame::setFrameType
EncodedFrame & setFrameType(FrameType type)
Definition: EncodedFrame.cpp:129
dai::RawEncodedFrame::CameraSettings::sensitivityIso
int32_t sensitivityIso
Definition: RawEncodedFrame.hpp:15
dai::Buffer::setSequenceNum
Buffer & setSequenceNum(int64_t sequenceNum)
Definition: Buffer.cpp:55
dai::RawEncodedFrame::Profile::HEVC
@ HEVC


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19