MediaInfAiDataMotionDetection.hpp
1 //
2 // Created by xiong on 2023/9/12.
3 //
4 
5 #ifndef EMX_MediaInfAiMotionDetection_HPP
6 #define EMX_MediaInfAiMotionDetection_HPP
7 
8 #include "MediaInfAiData.hpp"
9 #include "MediaRegion.hpp"
10 #include <cstring>
11 
12 namespace Emx {
18  public:
20 
22 
23  public:
24  void Alloc(int n) {
25  Free();
26  array = (Rect *) EP_MALLOC(n * (int) sizeof(Rect));
27  if (array) { memset((void *) array, 0, n * sizeof(Rect)); }
28  }
29 
30  void Free() {
31  if (array) {
32  free(array);
33  array = nullptr;
34  }
35  }
36 
37  int GetSerializeSize() override { return (int) sizeof(num) + num * (int) sizeof(Rect); }
38 
39  void Serialize(uint8_t *buffer) override {
40  int off = 0;
41  memcpy(buffer + off, &num, sizeof(num));
42  off += sizeof(num);
43  memcpy(buffer + off, array, num * (int) sizeof(Rect));
44  }
45 
46  void Parse(const uint8_t *buffer, int size) override {
47  int off = 0;
48  memcpy(&num, buffer + off, sizeof(num));
49  off += sizeof(num);
50  if (num && num * (int) sizeof(Rect) + off == size) {
51  Alloc(num);
52  memcpy(array, buffer + off, num * (int) sizeof(Rect));
53  }
54  }
55 
56  public:
57  int num;
59  };
61 }// namespace Emx
62 
63 #endif//EMX_MediaInfAiMotionDetection_HPP
Definition: MediaInfAiDataMotionDetection.hpp:17
virtual ~MediaInfAiDataMotionDetection()
Definition: MediaInfAiDataMotionDetection.hpp:21
Rect * array
Definition: MediaInfAiDataMotionDetection.hpp:58
void Serialize(uint8_t *buffer) override
Definition: MediaInfAiDataMotionDetection.hpp:39
void Free()
Definition: MediaInfAiDataMotionDetection.hpp:30
void Alloc(int n)
Definition: MediaInfAiDataMotionDetection.hpp:24
int num
Definition: MediaInfAiDataMotionDetection.hpp:57
MediaInfAiDataMotionDetection()
Definition: MediaInfAiDataMotionDetection.hpp:19
int GetSerializeSize() override
Definition: MediaInfAiDataMotionDetection.hpp:37
void Parse(const uint8_t *buffer, int size) override
Definition: MediaInfAiDataMotionDetection.hpp:46
Definition: MediaInfAiData.hpp:29
Definition: EmxGpio.hpp:10
矩形框
Definition: MediaRegion.hpp:35