diff --git a/camera/hal/pipeline_core/nodes/src/fork_node/fork_node.cpp b/camera/hal/pipeline_core/nodes/src/fork_node/fork_node.cpp index 89cb91d98139fe98ed293169e62effe0c5270a51..97475ecb957915b5f77a71dfbf48aa0c9124715c 100644 --- a/camera/hal/pipeline_core/nodes/src/fork_node/fork_node.cpp +++ b/camera/hal/pipeline_core/nodes/src/fork_node/fork_node.cpp @@ -170,7 +170,20 @@ void ForkNode::ForkBuffers() return; } -RetCode ForkNode::CopyBuffer(uint64_t poolId, std::shared_ptr& buffer) +void ForkNode::StopForkThread() +{ + if (forkThread_ != nullptr) { + { + std::unique_lock lck(mtx_); + forkThreadRunFlag_ = false; + cv_.notify_all(); + } + forkThread_->join(); + forkThread_ = nullptr; + } + CAMERA_LOGI("ForkNode::StopForkThread exit"); +} +void ForkNode::DrainForkBufferPool() { BufferManager* bufferManager = Camera::BufferManager::GetInstance(); CHECK_IF_PTR_NULL_RETURN_VALUE(bufferManager, RC_ERROR);