Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
FrameMetadata.h
1#pragma once
2
3#include "CommonDefs.h"
4#include "AIPExceptions.h"
5
6#define NOT_SET_NUM 999999
7
9
11public:
12 static size_t getPaddingLength(size_t length, size_t alignLength)
13 {
14 if (!alignLength)
15 {
16 return 0;
17 }
18
19 auto rem = length % alignLength;
20 if (rem == 0)
21 {
22 return 0;
23 }
24
25 return (alignLength - rem);
26 }
27
28public:
56
58 {
59 HOST = 1,
62 DMABUF = 4
63 };
64
66 {
67 frameType = _frameType;
69 hint = "";
70 }
71
72 FrameMetadata(FrameType _frameType, std::string _hint)
73 {
74 frameType = _frameType;
76 hint = _hint;
77 }
78
79 FrameMetadata(FrameType _frameType, MemType _memType)
80 {
81 frameType = _frameType;
82 memType = _memType;
83 hint = "";
84 }
85
86 virtual ~FrameMetadata() { }
87
88 virtual void reset()
89 {
90 dataSize = NOT_SET_NUM;
91 }
92
93 virtual bool isSet()
94 {
95 return true;
96 }
97
99 {
100 return frameType;
101 }
102
104 {
105 return memType;
106 }
107
108 virtual size_t getDataSize()
109 {
110 return dataSize;
111 }
112
113 std::string getHint() { return hint; }
114
115 void setHint(std::string _hint) { hint = _hint; }
116 void copyHint(FrameMetadata& metadata)
117 {
118 if(!hint.empty())
119 {
120 return;
121 }
122
123 auto _hint = metadata.getHint();
124 if(_hint.empty())
125 {
126 return;
127 }
128
129 setHint(_hint);
130 }
131
132 void setData(FrameMetadata& metadata)
133 {
134 // dont set memType
135 // assuming frameType is same so no need to set
136
137 // hint I am still undecided whether to copy or not
138 }
139
140protected:
143 std::string hint;
144
145 size_t dataSize = NOT_SET_NUM;
146};
Definition FrameMetadata.h:10
MemType getMemType()
Definition FrameMetadata.h:103
FrameType getFrameType()
Definition FrameMetadata.h:98
std::string getHint()
Definition FrameMetadata.h:113
FrameMetadata(FrameType _frameType)
Definition FrameMetadata.h:65
FrameMetadata(FrameType _frameType, std::string _hint)
Definition FrameMetadata.h:72
virtual void reset()
Definition FrameMetadata.h:88
void setHint(std::string _hint)
Definition FrameMetadata.h:115
size_t dataSize
Definition FrameMetadata.h:145
virtual bool isSet()
Definition FrameMetadata.h:93
virtual ~FrameMetadata()
Definition FrameMetadata.h:86
MemType memType
Definition FrameMetadata.h:142
static size_t getPaddingLength(size_t length, size_t alignLength)
Definition FrameMetadata.h:12
void setData(FrameMetadata &metadata)
Definition FrameMetadata.h:132
std::string hint
Definition FrameMetadata.h:143
MemType
Definition FrameMetadata.h:58
@ HOST
Definition FrameMetadata.h:59
@ HOST_PINNED
Definition FrameMetadata.h:60
@ CUDA_DEVICE
Definition FrameMetadata.h:61
@ DMABUF
Definition FrameMetadata.h:62
void copyHint(FrameMetadata &metadata)
Definition FrameMetadata.h:116
FrameMetadata(FrameType _frameType, MemType _memType)
Definition FrameMetadata.h:79
FrameType
Definition FrameMetadata.h:29
@ EDGEDEFECT_ANALYSIS_INFO
Definition FrameMetadata.h:37
@ GPIO
Definition FrameMetadata.h:42
@ HEVC_DATA
Definition FrameMetadata.h:50
@ DEFECTS_INFO
Definition FrameMetadata.h:46
@ COMMAND
Definition FrameMetadata.h:40
@ PROPS_CHANGE
Definition FrameMetadata.h:38
@ ARRAY
Definition FrameMetadata.h:35
@ RAW_IMAGE_PLANAR
Definition FrameMetadata.h:33
@ FACE_LANDMARKS_INFO
Definition FrameMetadata.h:53
@ APRA_LINES
Definition FrameMetadata.h:43
@ BMP_IMAGE
Definition FrameMetadata.h:48
@ AUDIO
Definition FrameMetadata.h:34
@ OVERLAY_INFO_IMAGE
Definition FrameMetadata.h:52
@ ROI
Definition FrameMetadata.h:45
@ FACEDETECTS_INFO
Definition FrameMetadata.h:47
@ RAW_IMAGE
Definition FrameMetadata.h:32
@ MOTION_VECTOR_DATA
Definition FrameMetadata.h:51
@ LINE
Definition FrameMetadata.h:44
@ CHANGE_DETECTION
Definition FrameMetadata.h:36
@ MP4_VIDEO_METADATA
Definition FrameMetadata.h:49
@ ENCODED_IMAGE
Definition FrameMetadata.h:31
@ H264_DATA
Definition FrameMetadata.h:41
@ GENERAL
Definition FrameMetadata.h:30
@ TEXT
Definition FrameMetadata.h:54
@ PAUSE_PLAY
Definition FrameMetadata.h:39
virtual size_t getDataSize()
Definition FrameMetadata.h:108
FrameType frameType
Definition FrameMetadata.h:141
Definition RawImageMetadata.h:10