1461521844lijin / trt_yolo_video_pipeline

TensorRT+YOLO系列的 多路 多卡 多实例 并行视频分析处理案例
MIT License
222 stars 43 forks source link

存储任务类,在特定情况下的bug #24

Closed Discovery-Kingdom closed 2 months ago

Discovery-Kingdom commented 3 months ago

// FFmpegRecordNode.cpp: auto mp4_record_task = std::make_shared(mp4_record_data->get_record_config()); m_record_task_list.push_back(mp4_record_task); mp4_record_task->Start();

//RecordTask.cpp m_thread = std::thread(&RecordTask::worker, shared_from_this()); 开启存储任务时,m_record_task_list中的存储任务指针会被两次引用,当存储任务未完成时,释放pipeline资源,m_record_task_list.clear(),RecordTask引用计数变化为2->1 .无法正常析构,资源无法得到释放

Discovery-Kingdom commented 3 months ago

建议直接m_thread = std::thread(&RecordTask::worker, this);

1461521844lijin commented 3 months ago

建议直接m_thread = std::thread(&RecordTask::worker, this);

测试了确实存在这个问题,已修复,多谢/握拳