2#include "FrameMetadata.h"
4#include "declarative/PropertyMacros.h"
35 template<
typename PropsT>
38 const std::map<std::string, apra::ScalarPropertyValue>& values,
39 std::vector<std::string>& missingRequired
42 auto it = values.find(
"conversionType");
43 if (it != values.end()) {
44 if (
auto* strVal = std::get_if<std::string>(&it->second)) {
45 static const std::map<std::string, ConversionType> enumMap = {
58 auto enumIt = enumMap.find(*strVal);
59 if (enumIt != enumMap.end()) {
60 props.type = enumIt->second;
64 missingRequired.push_back(
"conversionType");
69 if (propName ==
"conversionType") {
70 static const char* enumNames[] = {
71 "RGB_TO_MONO",
"BGR_TO_MONO",
"BGR_TO_RGB",
"RGB_TO_BGR",
72 "RGB_TO_YUV420PLANAR",
"YUV420PLANAR_TO_RGB",
73 "BAYERBG8_TO_MONO",
"BAYERBG8_TO_RGB",
"BAYERGB8_TO_RGB",
74 "BAYERRG8_TO_RGB",
"BAYERGR8_TO_RGB"
76 return std::string(enumNames[
type]);
78 throw std::runtime_error(
"Unknown property: " + propName);
82 throw std::runtime_error(
"Cannot modify static property '" + propName +
"' after initialization");
100 bool process(frame_container& frames);
106 void addInputPin(framemetadata_sp& metadata,
string& pinId);
Definition ColorConversionXForm.h:8
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition ColorConversionXForm.h:68
ConversionType type
Definition ColorConversionXForm.h:30
ConversionType
Definition ColorConversionXForm.h:11
@ RGB_TO_YUV420PLANAR
Definition ColorConversionXForm.h:16
@ BGR_TO_RGB
Definition ColorConversionXForm.h:14
@ BAYERBG8_TO_RGB
Definition ColorConversionXForm.h:19
@ YUV420PLANAR_TO_RGB
Definition ColorConversionXForm.h:17
@ BAYERRG8_TO_RGB
Definition ColorConversionXForm.h:21
@ RGB_TO_MONO
Definition ColorConversionXForm.h:12
@ BAYERGB8_TO_RGB
Definition ColorConversionXForm.h:20
@ BAYERBG8_TO_MONO
Definition ColorConversionXForm.h:18
@ RGB_TO_BGR
Definition ColorConversionXForm.h:15
@ BGR_TO_MONO
Definition ColorConversionXForm.h:13
@ BAYERGR8_TO_RGB
Definition ColorConversionXForm.h:22
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition ColorConversionXForm.h:81
ColorConversionProps(ConversionType _type)
Definition ColorConversionXForm.h:24
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition ColorConversionXForm.h:36
static std::vector< std::string > dynamicPropertyNames()
Definition ColorConversionXForm.h:85
ColorConversionProps()
Definition ColorConversionXForm.h:28
Definition ColorConversionXForm.h:91
bool validateInputPins()
Definition ColorConversionXForm.cpp:16
std::string addOutputPin(framemetadata_sp &metadata)
Definition ColorConversionXForm.cpp:73
bool process(frame_container &frames)
Definition ColorConversionXForm.cpp:89
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition ColorConversionXForm.cpp:56
boost::shared_ptr< DetailAbstract > mDetail
Definition ColorConversionXForm.h:111
std::string mOutputPinId
Definition ColorConversionXForm.h:112
ColorConversion(ColorConversionProps _props)
Definition ColorConversionXForm.cpp:7
virtual ~ColorConversion()
Definition ColorConversionXForm.cpp:12
bool init()
Definition ColorConversionXForm.cpp:78
bool processSOS(frame_sp &frame)
Definition ColorConversionXForm.cpp:156
bool shouldTriggerSOS()
Definition ColorConversionXForm.cpp:166
bool validateOutputPins()
Definition ColorConversionXForm.cpp:33
bool setMetadata(framemetadata_sp &metadata)
Definition ColorConversionXForm.cpp:98
framemetadata_sp mInputMetadata
Definition ColorConversionXForm.h:114
void setConversionStrategy(framemetadata_sp inputMetadata, framemetadata_sp outputMetadata)
Definition ColorConversionXForm.cpp:51
bool mShouldTriggerSos
Definition ColorConversionXForm.h:115
bool term()
Definition ColorConversionXForm.cpp:84
ColorConversionProps mProps
Definition ColorConversionXForm.h:110
framemetadata_sp mOutputMetadata
Definition ColorConversionXForm.h:113
Definition ColorConversionStrategy.h:4
std::variant< int64_t, double, bool, std::string > ScalarPropertyValue
Definition ModuleRegistry.h:30