Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
EffectsNPPI.h
1#pragma once
2
3#include "Module.h"
4#include "CudaCommon.h"
5
7{
8public:
9 EffectsNPPIProps(cudastream_sp& _stream)
10 {
11 stream_sp = _stream;
12 stream = _stream->getCudaStream();
13 contrast = 1;
14 brightness = 0;
15 hue = 0;
16 saturation = 1;
17 }
18
19 double hue; // 0/255 no change [0 255]
20 double saturation; // 1 no change
21 double contrast; // 1 no change
22 int brightness; // 0 no change [-100 - 100]
23
24 cudaStream_t stream;
25 cudastream_sp stream_sp;
26
27
29 {
30 return ModuleProps::getSerializeSize() + sizeof(contrast) + sizeof(brightness) + sizeof(hue) + sizeof(saturation) + sizeof(stream);
31 }
32
33private:
35
36 template<class Archive>
37 void serialize(Archive &ar, const unsigned int version)
38 {
39 ar & boost::serialization::base_object<ModuleProps>(*this);
40 ar & contrast;
41 ar & brightness;
42 ar & hue;
43 ar & saturation;
44 }
45};
46
47class EffectsNPPI : public Module
48{
49
50public:
52 virtual ~EffectsNPPI();
53 bool init();
54 bool term();
55
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& metadata);
71
72 class Detail;
73 boost::shared_ptr<Detail> mDetail;
74
77 framemetadata_sp mOutputMetadata;
78 std::string mOutputPinId;
80};
Definition EffectsNPPI.h:7
double hue
Definition EffectsNPPI.h:19
double saturation
Definition EffectsNPPI.h:20
void serialize(Archive &ar, const unsigned int version)
Definition EffectsNPPI.h:37
int brightness
Definition EffectsNPPI.h:22
double contrast
Definition EffectsNPPI.h:21
EffectsNPPIProps(cudastream_sp &_stream)
Definition EffectsNPPI.h:9
cudastream_sp stream_sp
Definition EffectsNPPI.h:25
friend class boost::serialization::access
Definition EffectsNPPI.h:34
cudaStream_t stream
Definition EffectsNPPI.h:24
size_t getSerializeSize()
Definition EffectsNPPI.h:28
Definition EffectsNPPI.cpp:15
Definition EffectsNPPI.h:48
bool validateOutputPins()
Definition EffectsNPPI.cpp:418
EffectsNPPIProps getProps()
Definition EffectsNPPI.cpp:558
bool processSOS(frame_sp &frame)
Definition EffectsNPPI.cpp:482
bool validateInputPins()
Definition EffectsNPPI.cpp:392
bool init()
Definition EffectsNPPI.cpp:454
bool term()
Definition EffectsNPPI.cpp:464
boost::shared_ptr< Detail > mDetail
Definition EffectsNPPI.h:73
size_t mFrameLength
Definition EffectsNPPI.h:76
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition EffectsNPPI.cpp:444
bool shouldTriggerSOS()
Definition EffectsNPPI.cpp:547
bool process(frame_container &frames)
Definition EffectsNPPI.cpp:469
bool processEOS(string &pinId)
Definition EffectsNPPI.cpp:552
void setProps(EffectsNPPIProps &props)
Definition EffectsNPPI.cpp:566
std::string mOutputPinId
Definition EffectsNPPI.h:78
void setMetadata(framemetadata_sp &metadata)
Definition EffectsNPPI.cpp:489
framemetadata_sp mOutputMetadata
Definition EffectsNPPI.h:77
EffectsNPPIProps props
Definition EffectsNPPI.h:79
virtual ~EffectsNPPI()
Definition EffectsNPPI.cpp:390
bool handlePropsChange(frame_sp &frame)
Definition EffectsNPPI.cpp:571
int mFrameType
Definition EffectsNPPI.h:75
EffectsNPPI(EffectsNPPIProps _props)
Definition EffectsNPPI.cpp:385
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151