summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-10-01 17:47:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-01 17:47:18 +0000
commit26c1fb23a1e2cc059aac42fd1814efba2a3e9640 (patch)
treefa826d7d7161228093f99fbe85263f6663777c98 /services
parent353fb9bf940ee34a3885bc85ec7891228e958a4b (diff)
parent893068ad0ca0cce8428f5a358c86b81139399c07 (diff)
downloadframeworks_av-26c1fb23a1e2cc059aac42fd1814efba2a3e9640.zip
frameworks_av-26c1fb23a1e2cc059aac42fd1814efba2a3e9640.tar.gz
frameworks_av-26c1fb23a1e2cc059aac42fd1814efba2a3e9640.tar.bz2
Merge "Camera: drop stale callback buffer" into klp-dev
Diffstat (limited to 'services')
-rw-r--r--services/camera/libcameraservice/api1/client2/CallbackProcessor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/api1/client2/CallbackProcessor.cpp b/services/camera/libcameraservice/api1/client2/CallbackProcessor.cpp
index 9d8c4a1..d2ac79c 100644
--- a/services/camera/libcameraservice/api1/client2/CallbackProcessor.cpp
+++ b/services/camera/libcameraservice/api1/client2/CallbackProcessor.cpp
@@ -312,6 +312,16 @@ status_t CallbackProcessor::processNewCallback(sp<Camera2Client> &client) {
return OK;
}
+ if (imgBuffer.width != static_cast<uint32_t>(l.mParameters.previewWidth) ||
+ imgBuffer.height != static_cast<uint32_t>(l.mParameters.previewHeight)) {
+ ALOGW("%s: The preview size has changed to %d x %d from %d x %d, this buffer is"
+ " no longer valid, dropping",__FUNCTION__,
+ l.mParameters.previewWidth, l.mParameters.previewHeight,
+ imgBuffer.width, imgBuffer.height);
+ mCallbackConsumer->unlockBuffer(imgBuffer);
+ return OK;
+ }
+
previewFormat = l.mParameters.previewFormat;
useFlexibleYuv = l.mParameters.fastInfo.useFlexibleYuv &&
(previewFormat == HAL_PIXEL_FORMAT_YCrCb_420_SP ||