leon 1 ay önce
ebeveyn
işleme
370a494db3

+ 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));

+ 8 - 2
src/nodes/stream/streamNode.hpp

@@ -61,7 +61,13 @@ public:
             status_ = StreamStatus::OPENED;
         }
     }
-    virtual ~StreamNode() { };
+    virtual ~StreamNode() 
+    { 
+        if (demuxer_) 
+        {
+            printf("error : demuxer 未被工作线程释放\n");
+        }
+    };
 
     void set_stream_url(const std::string& stream_url)
     {
@@ -77,7 +83,7 @@ public:
         skip_frame_ = skip_frame;
     }
 
-    
+
 
     void work() override;
     void work_cpu();