Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
ImagePlaneData.h
1#pragma once
2
3#include <cstddef>
4
6{
7public:
8 ImagePlaneData(size_t _size, size_t _step, size_t _rowSize, int _width, int _height) : size(_size),
9 step(_step),
10 rowSize(_rowSize),
11 width(_width),
12 height(_height)
13 {
15
16 if (step == rowSize)
17 {
19 }
20 else
21 {
23 }
24 }
25
26public:
27 static void copyFromImagePlane(ImagePlaneData *plane, void *dst)
28 {
29 memcpy(dst, plane->data, plane->imageSize);
30 }
31
32 static void copyFromImagePlaneByLine(ImagePlaneData *plane, void *dst)
33 {
34 auto dstPtr = static_cast<uint8_t *>(dst);
35 auto srcPtr = static_cast<uint8_t *>(plane->data);
36 for (auto i = 0; i < plane->height; i++)
37 {
38 memcpy(dstPtr, srcPtr, plane->rowSize);
39 dstPtr += plane->rowSize;
40 srcPtr += plane->step;
41 }
42 }
43
44public:
45 typedef std::function<void(ImagePlaneData *, void *)> Copy;
46
47public:
48 void *data;
49 size_t size;
50 size_t imageSize;
51 size_t step;
52 size_t rowSize;
53 int width;
54 int height;
55
57};
58
59typedef std::vector<std::shared_ptr<ImagePlaneData>> ImagePlanes;
Definition ImagePlaneData.h:6
static void copyFromImagePlaneByLine(ImagePlaneData *plane, void *dst)
Definition ImagePlaneData.h:32
int height
Definition ImagePlaneData.h:54
int width
Definition ImagePlaneData.h:53
void * data
Definition ImagePlaneData.h:48
static void copyFromImagePlane(ImagePlaneData *plane, void *dst)
Definition ImagePlaneData.h:27
ImagePlaneData(size_t _size, size_t _step, size_t _rowSize, int _width, int _height)
Definition ImagePlaneData.h:8
size_t rowSize
Definition ImagePlaneData.h:52
size_t size
Definition ImagePlaneData.h:49
size_t imageSize
Definition ImagePlaneData.h:50
size_t step
Definition ImagePlaneData.h:51
Copy mCopyToData
Definition ImagePlaneData.h:56
std::function< void(ImagePlaneData *, void *)> Copy
Definition ImagePlaneData.h:45