|
@@ -0,0 +1,39 @@
|
|
|
+#include "nodes/base/base.hpp"
|
|
|
+#include "nodes/stream/streamNode.hpp"
|
|
|
+
|
|
|
+namespace Node
|
|
|
+{
|
|
|
+
|
|
|
+void StreamNode::work() override
|
|
|
+{
|
|
|
+ cv::VideoCapture cap(stream_url_);
|
|
|
+ if (!cap.isOpened())
|
|
|
+ {
|
|
|
+ std::cerr << "Error: cannot open camera" << std::endl;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ while (running_)
|
|
|
+ {
|
|
|
+ cv::Mat frame;
|
|
|
+ cap >> frame;
|
|
|
+ printf("%dx%d\n", frame.cols, frame.rows);
|
|
|
+ if (frame.empty())
|
|
|
+ {
|
|
|
+ std::cerr << "Error: cannot read frame" << std::endl;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ auto metaData = std::make_shared<meta::MetaData>();
|
|
|
+ metaData->image = frame;
|
|
|
+
|
|
|
+ for (auto& output_buffer : output_buffers_)
|
|
|
+ {
|
|
|
+ output_buffer.second->push(metaData);
|
|
|
+ printf("%d\n", output_buffer.second->size());
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+} // namespace Node
|