diff --git a/libuvc_camera/src/camera_driver.cpp b/libuvc_camera/src/camera_driver.cpp index 0f89b9524caec9281d6b6b69906004841824d805..071bf5eaaee047af022e9f0977cd8bbeb23f499b 100644 --- a/libuvc_camera/src/camera_driver.cpp +++ b/libuvc_camera/src/camera_driver.cpp @@ -50,10 +50,15 @@ bool CameraDriver::Start() { void CameraDriver::Stop() { boost::recursive_mutex::scoped_lock(mutex_); - if (state_ == kRunning) { + assert(state_ != kInitial); + + if (state_ == kRunning) CloseCamera(); - state_ = kInitial; - } + + assert(state_ == kStopped); + + uvc_exit(ctx_); + ctx_ = NULL; } void CameraDriver::ReconfigureCallback(UVCCameraConfig &new_config, uint32_t level) {