summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/camera/libcameraservice/api2/CameraDeviceClient.cpp9
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.cpp8
2 files changed, 6 insertions, 11 deletions
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
index 9c4f9cd..b6f6677 100644
--- a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
+++ b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
@@ -691,15 +691,10 @@ status_t CameraDeviceClient::prepare(int streamId) {
return BAD_VALUE;
}
- // Also returns BAD_VALUE if stream ID was not valid
+ // Also returns BAD_VALUE if stream ID was not valid, or stream already
+ // has been used
res = mDevice->prepare(streamId);
- if (res == BAD_VALUE) {
- ALOGE("%s: Camera %d: Unexpected BAD_VALUE when preparing stream, but we"
- " already checked and the stream ID (%d) should be valid.",
- __FUNCTION__, mCameraId, streamId);
- }
-
return res;
}
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index d2c2482..445c9c2 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -1342,6 +1342,8 @@ status_t Camera3Device::flush(int64_t *frameNumber) {
status_t Camera3Device::prepare(int streamId) {
ATRACE_CALL();
ALOGV("%s: Camera %d: Preparing stream %d", __FUNCTION__, mId, streamId);
+ Mutex::Autolock il(mInterfaceLock);
+ Mutex::Autolock l(mLock);
sp<Camera3StreamInterface> stream;
ssize_t outputStreamIdx = mOutputStreams.indexOfKey(streamId);
@@ -1353,14 +1355,12 @@ status_t Camera3Device::prepare(int streamId) {
stream = mOutputStreams.editValueAt(outputStreamIdx);
if (stream->isUnpreparable() || stream->hasOutstandingBuffers() ) {
- ALOGE("%s: Camera %d: Stream %d has already been a request target",
- __FUNCTION__, mId, streamId);
+ CLOGE("Stream %d has already been a request target", streamId);
return BAD_VALUE;
}
if (mRequestThread->isStreamPending(stream)) {
- ALOGE("%s: Camera %d: Stream %d is already a target in a pending request",
- __FUNCTION__, mId, streamId);
+ CLOGE("Stream %d is already a target in a pending request", streamId);
return BAD_VALUE;
}