summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2014-06-25 11:40:02 -0700
committerZhijun He <zhijunhe@google.com>2014-06-27 17:53:38 -0700
commit25a0aef19e170d2695f64b4c48296e7914155a88 (patch)
tree39dfc94b9202060d8b8645497effa989cef2670f /services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp
parente8f2c6cfe9afc5b303ab6b0fb51e18ddce512b54 (diff)
downloadframeworks_av-25a0aef19e170d2695f64b4c48296e7914155a88.zip
frameworks_av-25a0aef19e170d2695f64b4c48296e7914155a88.tar.gz
frameworks_av-25a0aef19e170d2695f64b4c48296e7914155a88.tar.bz2
Camera1: Don't send partial results to ZSL clients
ZSL clients expect each received result as a complete result, and send back to HAL as a reprocess capture request. CaptureSequencer client assumes results to be non-partial too, it need look into some metadata that may not be present in partial results. Change-Id: Id716913fd6e1c914726abd6610fddf91141783c2
Diffstat (limited to 'services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp')
-rw-r--r--services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp
index 8268f65..cb9aca6 100644
--- a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp
+++ b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp
@@ -350,8 +350,10 @@ CaptureSequencer::CaptureState CaptureSequencer::manageZslStart(
return DONE;
}
+ // We don't want to get partial results for ZSL capture.
client->registerFrameListener(mCaptureId, mCaptureId + 1,
- this);
+ this,
+ /*sendPartials*/false);
// TODO: Actually select the right thing here.
res = processor->pushToReprocess(mCaptureId);
@@ -393,8 +395,14 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardStart(
bool isAeConverged = false;
// Get the onFrameAvailable callback when the requestID == mCaptureId
+ // We don't want to get partial results for normal capture, as we need
+ // Get ANDROID_SENSOR_TIMESTAMP from the capture result, but partial
+ // result doesn't have to have this metadata available.
+ // TODO: Update to use the HALv3 shutter notification for remove the
+ // need for this listener and make it faster. see bug 12530628.
client->registerFrameListener(mCaptureId, mCaptureId + 1,
- this);
+ this,
+ /*sendPartials*/false);
{
Mutex::Autolock l(mInputMutex);