4#include "declarative/PropertyMacros.h"
13 Mp4WriterSinkProps(uint32_t _chunkTime, uint32_t _syncTimeInSecs, uint16_t _fps, std::string _baseFolder,
bool _recordedTSBasedDTS =
true,
bool _enableMetadata =
true) :
ModuleProps()
19 if ((_chunkTime >= 1 && _chunkTime <= 60) || (_chunkTime == UINT32_MAX))
25 throw AIPException(AIP_FATAL,
"ChuntTime should be within [1,60] minutes limit or UINT32_MAX");
27 if (_syncTimeInSecs >= 1 && _syncTimeInSecs <= 60)
33 throw AIPException(AIP_FATAL,
"SyncTime should be within [1,60] minutes limit");
68 template<
typename PropsT>
71 const std::map<std::string, apra::ScalarPropertyValue>& values,
72 std::vector<std::string>& missingRequired
74 apra::applyProp(props.baseFolder,
"baseFolder", values,
false, missingRequired);
75 apra::applyProp(props.chunkTime,
"chunkTime", values,
false, missingRequired);
76 apra::applyProp(props.syncTimeInSecs,
"syncTimeInSecs", values,
false, missingRequired);
78 apra::applyProp(props.recordedTSBasedDTS,
"recordedTSBasedDTS", values,
false, missingRequired);
79 apra::applyProp(props.enableMetadata,
"enableMetadata", values,
false, missingRequired);
83 if (propName ==
"baseFolder")
return baseFolder;
84 if (propName ==
"chunkTime")
return static_cast<int64_t
>(
chunkTime);
85 if (propName ==
"syncTimeInSecs")
return static_cast<int64_t
>(
syncTimeInSecs);
86 if (propName ==
"fps")
return static_cast<int64_t
>(
fps);
89 throw std::runtime_error(
"Unknown property: " + propName);
104 template <
class Archive>
107 ar &boost::serialization::base_object<ModuleProps>(*
this);
128 bool process(frame_container& frames);
136 void addInputPin(framemetadata_sp& metadata,
string& pinId);
Definition Mp4WriterSink.cpp:73
Definition Mp4WriterSink.cpp:272
Definition Mp4WriterSink.cpp:258
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Mp4WriterSink.h:11
std::vector< std::string > dynamicPropertyNames() const
Definition Mp4WriterSink.h:97
Mp4WriterSinkProps()
Definition Mp4WriterSink.h:37
size_t getSerializeSize()
Definition Mp4WriterSink.h:47
void serialize(Archive &ar, const unsigned int version)
Definition Mp4WriterSink.h:105
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition Mp4WriterSink.h:92
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition Mp4WriterSink.h:69
bool recordedTSBasedDTS
Definition Mp4WriterSink.h:62
bool enableMetadata
Definition Mp4WriterSink.h:63
friend class boost::serialization::access
Definition Mp4WriterSink.h:102
uint32_t syncTimeInSecs
Definition Mp4WriterSink.h:60
Mp4WriterSinkProps(uint32_t _chunkTime, uint32_t _syncTimeInSecs, uint16_t _fps, std::string _baseFolder, bool _recordedTSBasedDTS=true, bool _enableMetadata=true)
Definition Mp4WriterSink.h:13
uint16_t fps
Definition Mp4WriterSink.h:61
uint32_t chunkTime
Definition Mp4WriterSink.h:59
std::string baseFolder
Definition Mp4WriterSink.h:58
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition Mp4WriterSink.h:82
Definition Mp4WriterSink.h:118
bool setMetadata(framemetadata_sp &inputMetadata)
Definition Mp4WriterSink.cpp:634
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition Mp4WriterSink.cpp:653
bool init()
Definition Mp4WriterSink.cpp:559
bool processSOS(frame_sp &frame)
Definition Mp4WriterSink.cpp:658
void setProps(Mp4WriterSinkProps &props)
Definition Mp4WriterSink.cpp:731
bool enableMp4Metadata(framemetadata_sp &inputMetadata)
Definition Mp4WriterSink.cpp:640
virtual ~Mp4WriterSink()
Definition Mp4WriterSink.cpp:557
bool validateInputOutputPins()
Definition Mp4WriterSink.cpp:596
bool shouldTriggerSOS()
Definition Mp4WriterSink.cpp:681
bool process(frame_container &frames)
Definition Mp4WriterSink.cpp:692
bool validateInputPins()
Definition Mp4WriterSink.cpp:606
bool term()
Definition Mp4WriterSink.cpp:686
bool doMp4MuxSync()
Definition Mp4WriterSink.cpp:736
bool handlePropsChange(frame_sp &frame)
Definition Mp4WriterSink.cpp:723
bool processEOS(string &pinId)
Definition Mp4WriterSink.cpp:711
Mp4WriterSink(Mp4WriterSinkProps _props)
Definition Mp4WriterSink.cpp:552
Mp4WriterSinkProps mProp
Definition Mp4WriterSink.h:139
Mp4WriterSinkProps getProps()
Definition Mp4WriterSink.cpp:716
boost::shared_ptr< DetailAbs > mDetail
Definition Mp4WriterSink.h:138
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