diff --git a/services/media_engine/filters/surface_encoder_adapter.cpp b/services/media_engine/filters/surface_encoder_adapter.cpp index c72ffbc74e15d3f2e468b03df9db720b115cbb6d..bd50512d3361ae94c02082b73574a62d7f73a348 100644 --- a/services/media_engine/filters/surface_encoder_adapter.cpp +++ b/services/media_engine/filters/surface_encoder_adapter.cpp @@ -589,7 +589,7 @@ void SurfaceEncoderAdapter::ReleaseBuffer() { std::unique_lock lock(releaseBufferMutex_); releaseBufferCondition_.wait(lock, [this] { - return !indexs_.empty(); + return isThreadExit_||!indexs_.empty(); }); indexs = indexs_; indexs_.clear();