Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
OverlayNPPI.h
1#pragma once
2
3#include "Module.h"
4#include "CudaCommon.h"
5
7{
8public:
9 OverlayNPPIProps(cudastream_sp& _stream)
10 {
11 stream_sp = _stream;
12 stream = _stream->getCudaStream();
13 offsetX = 0;
14 offsetY = 0;
15 globalAlpha = -1;
16 }
17
21 cudaStream_t stream;
22 cudastream_sp stream_sp;
23
25 {
26 return ModuleProps::getSerializeSize() + sizeof(offsetX) + sizeof(offsetY) + sizeof(globalAlpha) + sizeof(stream);
27 }
28
29private:
31
32 template<class Archive>
33 void serialize(Archive &ar, const unsigned int version)
34 {
35 ar & boost::serialization::base_object<ModuleProps>(*this);
36 ar & offsetX;
37 ar & offsetY;
38 ar & globalAlpha;
39 }
40};
41
42class OverlayNPPI : public Module
43{
44
45public:
47 virtual ~OverlayNPPI();
48 bool init();
49 bool term();
50
53
54protected:
55 bool process(frame_container& frames);
56 bool processSOS(frame_sp& frame);
58 bool validateInputPins();
59 bool validateOutputPins();
60 void addInputPin(framemetadata_sp& metadata, string& pinId); // throws exception if validation fails
61 bool shouldTriggerSOS();
62 bool processEOS(string& pinId);
63 bool handlePropsChange(frame_sp& frame);
64
65private:
66 void setMetadata(framemetadata_sp& metadata);
67
68 class Detail;
69 boost::shared_ptr<Detail> mDetail;
70
73 framemetadata_sp mOutputMetadata;
74 std::string mOutputPinId;
76};
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151
Definition OverlayNPPI.h:7
int offsetX
Definition OverlayNPPI.h:18
cudaStream_t stream
Definition OverlayNPPI.h:21
cudastream_sp stream_sp
Definition OverlayNPPI.h:22
int globalAlpha
Definition OverlayNPPI.h:20
OverlayNPPIProps(cudastream_sp &_stream)
Definition OverlayNPPI.h:9
size_t getSerializeSize()
Definition OverlayNPPI.h:24
int offsetY
Definition OverlayNPPI.h:19
friend class boost::serialization::access
Definition OverlayNPPI.h:30
void serialize(Archive &ar, const unsigned int version)
Definition OverlayNPPI.h:33
Definition OverlayNPPI.cpp:20
Definition OverlayNPPI.h:43
void setMetadata(framemetadata_sp &metadata)
Definition OverlayNPPI.cpp:530
OverlayNPPIProps props
Definition OverlayNPPI.h:75
framemetadata_sp mOutputMetadata
Definition OverlayNPPI.h:73
OverlayNPPIProps getProps()
Definition OverlayNPPI.cpp:560
std::string mOutputPinId
Definition OverlayNPPI.h:74
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition OverlayNPPI.cpp:442
bool validateOutputPins()
Definition OverlayNPPI.cpp:416
bool process(frame_container &frames)
Definition OverlayNPPI.cpp:475
bool validateInputOutputPins()
Definition OverlayNPPI.cpp:356
bool validateInputPins()
Definition OverlayNPPI.cpp:386
size_t mFrameLength
Definition OverlayNPPI.h:72
bool term()
Definition OverlayNPPI.cpp:470
void setProps(OverlayNPPIProps &props)
Definition OverlayNPPI.cpp:567
virtual ~OverlayNPPI()
Definition OverlayNPPI.cpp:354
bool processSOS(frame_sp &frame)
Definition OverlayNPPI.cpp:510
OverlayNPPI(OverlayNPPIProps _props)
Definition OverlayNPPI.cpp:349
bool handlePropsChange(frame_sp &frame)
Definition OverlayNPPI.cpp:572
int mFrameType
Definition OverlayNPPI.h:71
bool init()
Definition OverlayNPPI.cpp:460
boost::shared_ptr< Detail > mDetail
Definition OverlayNPPI.h:69
bool processEOS(string &pinId)
Definition OverlayNPPI.cpp:554
bool shouldTriggerSOS()
Definition OverlayNPPI.cpp:549