4#include "declarative/PropertyMacros.h"
31 template<
typename PropsT>
34 const std::map<std::string, apra::ScalarPropertyValue>& values,
35 std::vector<std::string>& missingRequired
37 apra::applyProp(props.maxDelay,
"maxDelay", values,
false, missingRequired);
38 apra::applyProp(props.maxTsDelayInMS,
"maxTsDelayInMS", values,
false, missingRequired);
41 auto it = values.find(
"strategy");
42 if (it != values.end()) {
43 if (
auto* strVal = std::get_if<std::string>(&it->second)) {
44 if (*strVal ==
"ALL_OR_NONE") props.strategy =
ALL_OR_NONE;
45 else if (*strVal ==
"MAX_DELAY_ANY") props.strategy =
MAX_DELAY_ANY;
52 if (propName ==
"maxDelay")
return static_cast<int64_t
>(
maxDelay);
54 if (propName ==
"strategy") {
56 case ALL_OR_NONE:
return std::string(
"ALL_OR_NONE");
61 throw std::runtime_error(
"Unknown property: " + propName);
85 bool process(frame_container& frames);
89 void addInputPin(framemetadata_sp& metadata,
string& pinId);
92 boost::shared_ptr<FramesMuxerStrategy>
mDetail;
@ NONE
Definition FIndexStrategy.h:11
Definition FramesMuxer.h:7
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition FramesMuxer.h:32
int maxDelay
Definition FramesMuxer.h:24
double maxTsDelayInMS
Definition FramesMuxer.h:26
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition FramesMuxer.h:51
FramesMuxerProps()
Definition FramesMuxer.h:16
Strategy strategy
Definition FramesMuxer.h:25
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition FramesMuxer.h:64
static std::vector< std::string > dynamicPropertyNames()
Definition FramesMuxer.h:68
Strategy
Definition FramesMuxer.h:9
@ MAX_TIMESTAMP_DELAY
Definition FramesMuxer.h:12
@ MAX_DELAY_ANY
Definition FramesMuxer.h:11
@ ALL_OR_NONE
Definition FramesMuxer.h:10
Definition FramesMuxer.cpp:10
Definition FramesMuxer.h:75
virtual bool init()
Definition FramesMuxer.cpp:473
virtual bool term()
Definition FramesMuxer.cpp:484
bool process(frame_container &frames)
Definition FramesMuxer.cpp:497
bool validateInputOutputPins()
Definition FramesMuxer.cpp:462
virtual ~FramesMuxer()
Definition FramesMuxer.h:79
bool validateOutputPins()
Definition FramesMuxer.cpp:457
FramesMuxer(FramesMuxerProps _props=FramesMuxerProps())
Definition FramesMuxer.cpp:432
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition FramesMuxer.cpp:490
bool validateInputPins()
Definition FramesMuxer.cpp:452
boost::shared_ptr< FramesMuxerStrategy > mDetail
Definition FramesMuxer.h:92
FIndexStrategy::FIndexStrategyType fIndexStrategyType
Definition Module.h:133
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
std::variant< int64_t, double, bool, std::string > ScalarPropertyValue
Definition ModuleRegistry.h:30