diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index 9458c7f387bcc67f816aa6aab084bc37a3be3167..947221325eea2549bf44caaab5d73668c643582b 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -158,36 +158,12 @@ int32_t DCameraClient::StopCapture() videoOutput_ = nullptr; } - if (videoSurface_ != nullptr) { - DHLOGI("DCameraClient::StopCapture %s video surface unregister consumer listener", - GetAnonyString(cameraId_).c_str()); - int32_t ret = videoSurface_->UnregisterConsumerListener(); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraClient::StopCapture %s video surface unregister consumer listener failed, ret: %d", - GetAnonyString(cameraId_).c_str(), ret); - } - videoListener_ = nullptr; - videoSurface_ = nullptr; - } - if (photoOutput_ != nullptr) { DHLOGI("DCameraClient::StopCapture %s release photoOutput", GetAnonyString(cameraId_).c_str()); photoOutput_->Release(); photoOutput_ = nullptr; } - if (photoSurface_ != nullptr) { - DHLOGI("DCameraClient::StopCapture %s photo surface unregister consumer listener", - GetAnonyString(cameraId_).c_str()); - int32_t ret = photoSurface_->UnregisterConsumerListener(); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraClient::StopCapture %s photo surface unregister consumer listener failed, ret: %d", - GetAnonyString(cameraId_).c_str(), ret); - } - photoListener_ = nullptr; - photoSurface_ = nullptr; - } - if (captureSession_ != nullptr) { DHLOGI("DCameraClient::StopCapture %s stop captureSession", GetAnonyString(cameraId_).c_str()); int32_t ret = captureSession_->Stop(); @@ -206,6 +182,30 @@ int32_t DCameraClient::StopCapture() cameraInput_ = nullptr; } + if (videoSurface_ != nullptr) { + DHLOGI("DCameraClient::StopCapture %s video surface unregister consumer listener", + GetAnonyString(cameraId_).c_str()); + int32_t ret = videoSurface_->UnregisterConsumerListener(); + if (ret != DCAMERA_OK) { + DHLOGE("DCameraClient::StopCapture %s video surface unregister consumer listener failed, ret: %d", + GetAnonyString(cameraId_).c_str(), ret); + } + videoListener_ = nullptr; + videoSurface_ = nullptr; + } + + if (photoSurface_ != nullptr) { + DHLOGI("DCameraClient::StopCapture %s photo surface unregister consumer listener", + GetAnonyString(cameraId_).c_str()); + int32_t ret = photoSurface_->UnregisterConsumerListener(); + if (ret != DCAMERA_OK) { + DHLOGE("DCameraClient::StopCapture %s photo surface unregister consumer listener failed, ret: %d", + GetAnonyString(cameraId_).c_str(), ret); + } + photoListener_ = nullptr; + photoSurface_ = nullptr; + } + DHLOGI("DCameraClient::StopCapture %s success", GetAnonyString(cameraId_).c_str()); return DCAMERA_OK; } diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client_common.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client_common.cpp index 194e14f5f1d216f1fc2e9be34aa44c4b9a486a5d..72ec75123fc5cd6bac8a5591d775784ed12fb643 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client_common.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client_common.cpp @@ -146,6 +146,24 @@ int32_t DCameraClient::StartCapture(std::vectorStop(); + if (ret != DCAMERA_OK) { + DHLOGE("DCameraClientCommon::StopCapture captureSession stop failed, cameraId: %s, ret: %d", + GetAnonyString(cameraId_).c_str(), ret); + } + DHLOGI("DCameraClientCommon::StopCapture %s release captureSession", GetAnonyString(cameraId_).c_str()); + captureSession_->Release(); + captureSession_ = nullptr; + } + + if (cameraInput_ != nullptr) { + DHLOGI("DCameraClientCommon::StopCapture %s release cameraInput", GetAnonyString(cameraId_).c_str()); + cameraInput_->Release(); + cameraInput_ = nullptr; + } + if (videoSurface_ != nullptr) { DHLOGI("DCameraClientCommon::StopCapture %s video surface unregister consumer listener", GetAnonyString(cameraId_).c_str()); @@ -170,24 +188,6 @@ int32_t DCameraClient::StopCapture() photoSurface_ = nullptr; } - if (captureSession_ != nullptr) { - DHLOGI("DCameraClientCommon::StopCapture %s stop captureSession", GetAnonyString(cameraId_).c_str()); - int32_t ret = captureSession_->Stop(); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraClientCommon::StopCapture captureSession stop failed, cameraId: %s, ret: %d", - GetAnonyString(cameraId_).c_str(), ret); - } - DHLOGI("DCameraClientCommon::StopCapture %s release captureSession", GetAnonyString(cameraId_).c_str()); - captureSession_->Release(); - captureSession_ = nullptr; - } - - if (cameraInput_ != nullptr) { - DHLOGI("DCameraClientCommon::StopCapture %s release cameraInput", GetAnonyString(cameraId_).c_str()); - cameraInput_->Release(); - cameraInput_ = nullptr; - } - photoOutput_ = nullptr; previewOutput_ = nullptr; DHLOGI("DCameraClientCommon::StopCapture %s success", GetAnonyString(cameraId_).c_str());