Ver código fonte

add skip frame

leon 1 mês atrás
pai
commit
8dcbf7497f
3 arquivos alterados com 15 adições e 1 exclusões
  1. 3 0
      src/main.cpp
  2. 6 0
      src/nodes/stream/streamNode.cpp
  3. 6 1
      src/nodes/stream/streamNode.hpp

+ 3 - 0
src/main.cpp

@@ -4,6 +4,9 @@
 int main()
 {
     std::shared_ptr<Node::BaseNode> src_node   = std::make_shared<Node::StreamNode>("src", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/101");
+    src_node->set_skip_frame(10);
+    
+
     std::shared_ptr<Node::BaseNode> infer_node = std::make_shared<Node::InferNode>("infer");
     Node::LinkNode(src_node, infer_node);
     infer_node->start();

+ 6 - 0
src/nodes/stream/streamNode.cpp

@@ -17,6 +17,12 @@ void StreamNode::work()
     {
         cv::Mat frame;
         cap >> frame;
+        frame_count_++;
+        if (frame_count_ % skip_frame_ != 0)
+        {
+            printf("Skip frame %d\n", frame_count_);
+            continue;
+        }
         printf("%dx%d\n", frame.cols, frame.rows);
         if (frame.empty())
         {

+ 6 - 1
src/nodes/stream/streamNode.hpp

@@ -22,6 +22,10 @@ public:
 
     void set_skip_frame(int skip_frame)
     {
+        if (skip_frame < 1)
+        {
+            skip_frame = 1;
+        }
         skip_frame_ = skip_frame;
     }
 
@@ -29,7 +33,8 @@ public:
 
 private:
     std::string stream_url_;
-    int skip_frame_ = 0;
+    int skip_frame_ = 1;
+    int frame_count_ = 0;
 };
 
 }