Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
Merge.h
1#pragma once
2
3#include "Module.h"
4#include "declarative/PropertyMacros.h"
5
6class MergeProps : public ModuleProps
7{
8public:
10 {
11 maxDelay = 30;
12 }
13
14 uint32_t maxDelay; // Difference between current frame and first frame in the queue
15
16 // ============================================================
17 // Property Binding for Declarative Pipeline
18 // ============================================================
19 template<typename PropsT>
20 static void applyProperties(
21 PropsT& props,
22 const std::map<std::string, apra::ScalarPropertyValue>& values,
23 std::vector<std::string>& missingRequired
24 ) {
25 apra::applyProp(props.maxDelay, "maxDelay", values, false, missingRequired);
26 }
27
28 apra::ScalarPropertyValue getProperty(const std::string& propName) const {
29 if (propName == "maxDelay") return static_cast<int64_t>(maxDelay);
30 throw std::runtime_error("Unknown property: " + propName);
31 }
32
33 bool setProperty(const std::string& propName, const apra::ScalarPropertyValue& value) {
34 if (propName == "maxDelay") {
35 return apra::applyFromVariant(maxDelay, value);
36 }
37 return false;
38 }
39
40 std::vector<std::string> dynamicPropertyNames() const {
41 return {}; // maxDelay is not dynamically changeable at runtime
42 }
43};
44
45class Merge : public Module {
46public:
47
48 Merge(MergeProps _props=MergeProps());
49 virtual ~Merge() {}
50
51 virtual bool init();
52 virtual bool term();
53
54protected:
55 bool process(frame_container& frames);
56 bool validateInputPins();
57 bool validateOutputPins();
58 void addInputPin(framemetadata_sp& metadata, string& pinId);
59
60private:
61 class Detail;
62 boost::shared_ptr<Detail> mDetail;
63};
64
65
66
Definition FacialLandmarksCV.cpp:17
Definition Merge.h:7
std::vector< std::string > dynamicPropertyNames() const
Definition Merge.h:40
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition Merge.h:33
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition Merge.h:20
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition Merge.h:28
MergeProps()
Definition Merge.h:9
uint32_t maxDelay
Definition Merge.h:14
Definition Merge.h:45
bool validateOutputPins()
Definition Merge.cpp:115
Merge(MergeProps _props=MergeProps())
Definition Merge.cpp:87
virtual ~Merge()
Definition Merge.h:49
virtual bool init()
Definition Merge.cpp:126
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition Merge.cpp:143
bool process(frame_container &frames)
Definition Merge.cpp:153
boost::shared_ptr< Detail > mDetail
Definition Merge.h:62
bool validateInputPins()
Definition Merge.cpp:92
virtual bool term()
Definition Merge.cpp:137
Definition Module.h:33
Definition Module.h:151
void applyProp(T &member, const char *propName, const std::map< std::string, ScalarPropertyValue > &values, bool isRequired, std::vector< std::string > &missingRequired)
Definition PropertyMacros.h:36
bool applyFromVariant(T &member, const ScalarPropertyValue &value)
Definition PropertyMacros.h:108
std::variant< int64_t, double, bool, std::string > ScalarPropertyValue
Definition ModuleRegistry.h:30