summaryrefslogtreecommitdiffstats
path: root/services/camera
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2015-05-13 14:28:38 -0700
committerEino-Ville Talvala <etalvala@google.com>2015-05-13 14:28:38 -0700
commit261394e3edbe10f4f145f543187dcfbabf702c11 (patch)
tree218628b189893b3f8021f53466ff2976cb8b801f /services/camera
parent804a77d1045c6c4023f73a0975a09025b2e8eef2 (diff)
downloadframeworks_av-261394e3edbe10f4f145f543187dcfbabf702c11.zip
frameworks_av-261394e3edbe10f4f145f543187dcfbabf702c11.tar.gz
frameworks_av-261394e3edbe10f4f145f543187dcfbabf702c11.tar.bz2
Camera: Cleanup to prepare() implementation
- Mutexes _might_ be a good idea - Don't be surprised by behavior that's expected - Use the existing logging macros Bug: 20537148 Change-Id: Ie62985a786d7e6645b4e4fe019dd98b02891a1f7
Diffstat (limited to 'services/camera')
-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;
}