Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
Mp4WriterSink.h
1#pragma once
2
3#include "Module.h"
4
5class DetailAbs;
6class DetailJpeg;
7class DetailH264;
8
10{
11public:
12 Mp4WriterSinkProps(uint32_t _chunkTime, uint32_t _syncTimeInSecs, uint16_t _fps, std::string _baseFolder, bool _recordedTSBasedDTS = true, bool _enableMetadata = true) : ModuleProps()
13 {
14 baseFolder = _baseFolder;
15 fps = _fps;
16 recordedTSBasedDTS = _recordedTSBasedDTS;
17 enableMetadata = _enableMetadata;
18 if ((_chunkTime >= 1 && _chunkTime <= 60) || (_chunkTime == UINT32_MAX))
19 {
20 chunkTime = _chunkTime;
21 }
22 else
23 {
24 throw AIPException(AIP_FATAL, "ChuntTime should be within [1,60] minutes limit or UINT32_MAX");
25 }
26 if (_syncTimeInSecs >= 1 && _syncTimeInSecs <= 60)
27 {
28 syncTimeInSecs = _syncTimeInSecs;
29 }
30 else
31 {
32 throw AIPException(AIP_FATAL, "SyncTime should be within [1,60] minutes limit");
33 }
34 }
35
37 {
38 baseFolder = "./data/Mp4_videos/";
39 chunkTime = 1; //minutes
41 fps = 30;
42 recordedTSBasedDTS = true;
43 enableMetadata = true;
44 }
45
47 {
49 sizeof(recordedTSBasedDTS) +
50 sizeof(baseFolder) +
51 sizeof(chunkTime) +
52 sizeof(syncTimeInSecs) +
53 sizeof(fps) +
54 sizeof(enableMetadata);;
55 }
56
57 std::string baseFolder;
58 uint32_t chunkTime = 1;
59 uint32_t syncTimeInSecs = 1;
60 uint16_t fps = 30;
61 bool recordedTSBasedDTS = true;
62 bool enableMetadata = true;
63private:
65
66 template <class Archive>
67 void serialize(Archive &ar, const unsigned int version)
68 {
69 ar &boost::serialization::base_object<ModuleProps>(*this);
71 ar &baseFolder;
72 ar &chunkTime;
74 ar &fps;
76 }
77};
78
79class Mp4WriterSink : public Module
80{
81public:
83 virtual ~Mp4WriterSink();
84 bool init();
85 bool term();
86 void setProps(Mp4WriterSinkProps &props);
88 bool doMp4MuxSync();
89protected:
90 bool process(frame_container& frames);
91 bool processSOS(frame_sp& frame);
92 bool processEOS(string &pinId);
93 bool validateInputPins();
95 bool setMetadata(framemetadata_sp &inputMetadata);
96 bool handlePropsChange(frame_sp &frame);
97 bool shouldTriggerSOS();
98 void addInputPin(framemetadata_sp& metadata, string& pinId);
99 bool enableMp4Metadata(framemetadata_sp &inputMetadata);
100 boost::shared_ptr<DetailAbs> mDetail;
102
103};
Definition Mp4WriterSink.cpp:73
Definition Mp4WriterSink.cpp:272
Definition Mp4WriterSink.cpp:258
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151
Definition Mp4WriterSink.h:10
Mp4WriterSinkProps()
Definition Mp4WriterSink.h:36
size_t getSerializeSize()
Definition Mp4WriterSink.h:46
void serialize(Archive &ar, const unsigned int version)
Definition Mp4WriterSink.h:67
bool recordedTSBasedDTS
Definition Mp4WriterSink.h:61
bool enableMetadata
Definition Mp4WriterSink.h:62
friend class boost::serialization::access
Definition Mp4WriterSink.h:64
uint32_t syncTimeInSecs
Definition Mp4WriterSink.h:59
Mp4WriterSinkProps(uint32_t _chunkTime, uint32_t _syncTimeInSecs, uint16_t _fps, std::string _baseFolder, bool _recordedTSBasedDTS=true, bool _enableMetadata=true)
Definition Mp4WriterSink.h:12
uint16_t fps
Definition Mp4WriterSink.h:60
uint32_t chunkTime
Definition Mp4WriterSink.h:58
std::string baseFolder
Definition Mp4WriterSink.h:57
Definition Mp4WriterSink.h:80
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:101
Mp4WriterSinkProps getProps()
Definition Mp4WriterSink.cpp:716
boost::shared_ptr< DetailAbs > mDetail
Definition Mp4WriterSink.h:100