Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
GaussianBlur.h
1#pragma once
2
3#include "Module.h"
4#include "CudaCommon.h"
5#include "FrameMetadata.h"
6
7#include <boost/serialization/vector.hpp>
8
10{
11public:
12 GaussianBlurProps(cudastream_sp _stream) : ModuleProps()
13 {
14 stream = _stream;
15 kernelSize = 11;
16 roi = {0, 0, 0, 0};
17 }
18
19 GaussianBlurProps(cudastream_sp _stream, int _kernelSize) : ModuleProps()
20 {
21 stream = _stream;
22 kernelSize = _kernelSize;
23 roi = {0, 0, 0, 0};
24 }
25
26 cudastream_sp stream;
28 std::vector<int> roi;
29
31 {
32 return ModuleProps::getSerializeSize() + sizeof(roi) + (4 * sizeof(int)) + sizeof(kernelSize);
33 }
34
35private:
37
38 template <class Archive>
39 void serialize(Archive &ar, const unsigned int version)
40 {
41 ar &boost::serialization::base_object<ModuleProps>(*this);
42 ar &kernelSize;
43 ar &roi;
44 }
45};
46
47class GaussianBlur : public Module
48{
49public:
51 virtual ~GaussianBlur();
52
53 virtual bool init();
54 virtual bool term();
55
56 void setProps(GaussianBlurProps &props);
58
59protected:
60 bool process(frame_container &frames);
61 bool processSOS(frame_sp &frame);
62 bool validateInputPins();
63 bool validateOutputPins();
64 void addInputPin(framemetadata_sp &metadata, string &pinId); // throws exception if validation fails
65 bool shouldTriggerSOS();
66 bool processEOS(string &pinId);
67 bool handlePropsChange(frame_sp &frame);
68
69private:
70 void setMetadata(framemetadata_sp& inputMetadata);
71
72 class Detail;
73 boost::shared_ptr<Detail> mDetail;
74
75 framemetadata_sp mOutputMetadata;
76 std::string mOutputPinId;
78};
Definition GaussianBlur.h:10
size_t getSerializeSize()
Definition GaussianBlur.h:30
cudastream_sp stream
Definition GaussianBlur.h:26
GaussianBlurProps(cudastream_sp _stream, int _kernelSize)
Definition GaussianBlur.h:19
GaussianBlurProps(cudastream_sp _stream)
Definition GaussianBlur.h:12
std::vector< int > roi
Definition GaussianBlur.h:28
int kernelSize
Definition GaussianBlur.h:27
friend class boost::serialization::access
Definition GaussianBlur.h:36
void serialize(Archive &ar, const unsigned int version)
Definition GaussianBlur.h:39
Definition GaussianBlur.cpp:8
Definition GaussianBlur.h:48
std::string mOutputPinId
Definition GaussianBlur.h:76
GaussianBlur(GaussianBlurProps props)
Definition GaussianBlur.cpp:65
bool processEOS(string &pinId)
Definition GaussianBlur.cpp:200
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition GaussianBlur.cpp:126
virtual bool term()
Definition GaussianBlur.cpp:145
bool process(frame_container &frames)
Definition GaussianBlur.cpp:150
boost::shared_ptr< Detail > mDetail
Definition GaussianBlur.h:73
bool shouldTriggerSOS()
Definition GaussianBlur.cpp:195
bool validateOutputPins()
Definition GaussianBlur.cpp:100
bool validateInputPins()
Definition GaussianBlur.cpp:74
virtual bool init()
Definition GaussianBlur.cpp:135
virtual ~GaussianBlur()
Definition GaussianBlur.cpp:70
size_t mOutDataSize
Definition GaussianBlur.h:77
bool handlePropsChange(frame_sp &frame)
Definition GaussianBlur.cpp:211
bool processSOS(frame_sp &frame)
Definition GaussianBlur.cpp:188
void setProps(GaussianBlurProps &props)
Definition GaussianBlur.cpp:206
void setMetadata(framemetadata_sp &inputMetadata)
Definition GaussianBlur.cpp:179
framemetadata_sp mOutputMetadata
Definition GaussianBlur.h:75
GaussianBlurProps getProps()
Definition GaussianBlur.cpp:172
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151