leon 2 月之前
父節點
當前提交
700406e39c
共有 2 個文件被更改,包括 2 次插入1 次删除
  1. 1 0
      src/nodes/base/base.hpp
  2. 1 1
      src/nodes/stream/streamNode.cpp

+ 1 - 0
src/nodes/base/base.hpp

@@ -39,6 +39,7 @@ public:
         std::unique_lock<std::mutex> lock(mutex_);
         std::weak_ptr<BaseNode> weak_self = shared_from_this();
         // 设置回调,当数据push时通知当前节点
+        // 有数据到当前节点的时候才触发条件变量
         buffer->set_push_callback([weak_self]() {
             if (auto self = weak_self.lock()) {
                 self->cond_var_->notify_one();

+ 1 - 1
src/nodes/stream/streamNode.cpp

@@ -65,11 +65,11 @@ void StreamNode::work_gpu()
     unsigned int frame_index = 0;
     while(running_)
     {
-        demuxer_->demux(&packet_data, &packet_size, &pts);
         if (packet_size <= 0 || !running_)
         {
             break;
         }
+        demuxer_->demux(&packet_data, &packet_size, &pts);
         int ndecoded_frame = decoder_->decode(packet_data, packet_size, pts);
         for(int i = 0; i < ndecoded_frame; ++i){
             cv::Mat frame(decoder_->get_height(), decoder_->get_width(), CV_8UC3, decoder_->get_frame(&pts, &frame_index));