Closed Discovery-Kingdom closed 2 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 .无法正常析构,资源无法得到释放
建议直接m_thread = std::thread(&RecordTask::worker, this);
测试了确实存在这个问题,已修复,多谢/握拳
// 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 .无法正常析构,资源无法得到释放