Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
ExternalSourceModule.h
1#pragma once
2
3#include "Module.h"
4#include "FrameMetadata.h"
5#include "Frame.h"
6#include "ApraData.h"
7
16
18{
19public:
21 {
22
23 }
24
26
27 bool init()
28 {
29 if (!Module::init())
30 {
31 return false;
32 }
33
35 pinId = getOutputPinIdByType(metadata->getFrameType());
36
37 return true;
38 }
39
40 // used in ut
41 frame_sp makeFrame(size_t size, string pinId)
42 {
43 return Module::makeFrame(size, pinId);
44 }
45
46 // used in ut
47 bool send(frame_container& frames, bool forceBlockingPush=false)
48 {
49 return Module::send(frames, forceBlockingPush);
50 }
51
52 // used in ut
53 void sendEOS()
54 {
55 return Module::sendEOS();
56 }
57
58 pair<bool, uint64_t> produceExternalFrame(ApraData* data)
59 {
60 frame_sp frame = frame_sp(new ExternalFrame(data));
61 frame->setMetadata(metadata);
62
63 frame_container frames;
64 frames.insert(make_pair(pinId, frame));
65
66 auto ret = Module::send(frames);
67 auto out = make_pair(ret, frame->fIndex);
68
69 return out;
70 }
71
72 bool stop()
73 {
74 if (isRunning())
75 {
76 return Module::stop();
77 }
78 else
79 {
81 return true;
82 }
83 }
84
85protected:
87 {
88 return true;
89 }
90
91private:
92 framemetadata_sp metadata;
93 std::string pinId;
94};
Definition ApraData.h:9
Definition Frame.h:79
Definition ExternalSourceModule.h:9
ExternalSourceModuleProps()
Definition ExternalSourceModule.h:11
Definition ExternalSourceModule.h:18
frame_sp makeFrame(size_t size, string pinId)
Definition ExternalSourceModule.h:41
std::string pinId
Definition ExternalSourceModule.h:93
framemetadata_sp metadata
Definition ExternalSourceModule.h:92
ExternalSourceModule(ExternalSourceModuleProps _props=ExternalSourceModuleProps())
Definition ExternalSourceModule.h:20
pair< bool, uint64_t > produceExternalFrame(ApraData *data)
Definition ExternalSourceModule.h:58
bool validateOutputPins()
Definition ExternalSourceModule.h:86
bool stop()
Definition ExternalSourceModule.h:72
bool send(frame_container &frames, bool forceBlockingPush=false)
Definition ExternalSourceModule.h:47
void sendEOS()
Definition ExternalSourceModule.h:53
bool init()
Definition ExternalSourceModule.h:27
virtual ~ExternalSourceModule()
Definition ExternalSourceModule.h:25
Definition Module.h:33
QuePushStrategy::QuePushStrategyType quePushStrategyType
Definition Module.h:132
Definition Module.h:151
virtual bool send(frame_container &frames, bool forceBlockingPush=false)
Definition Module.cpp:678
frame_sp makeFrame()
Definition Module.cpp:989
virtual bool init()
Definition Module.cpp:570
virtual void sendEoPFrame()
Definition Module.cpp:1636
@ SOURCE
Definition Module.h:156
bool isRunning()
Definition Module.h:228
virtual bool stop()
Definition Module.cpp:1644
framemetadata_sp getFirstOutputMetadata()
Definition Module.cpp:549
virtual void sendEOS()
Definition Module.cpp:1347
string getOutputPinIdByType(int type)
Definition Module.cpp:869
@ NON_BLOCKING_ANY
Definition QuePushStrategy.h:14