summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-06-13 10:34:07 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-06-13 10:34:07 -0700
commit4541531a6e64329764ad7359775689a8f5aca165 (patch)
treeeb96930d7ef4bd23c91a56aeae73681b729fa375 /services
parenta45398078e4f798a34310a2d5213e07eefb14238 (diff)
parentc4a8d2ddfff6d91e493692251733f20ece3e713d (diff)
downloadframeworks_av-4541531a6e64329764ad7359775689a8f5aca165.zip
frameworks_av-4541531a6e64329764ad7359775689a8f5aca165.tar.gz
frameworks_av-4541531a6e64329764ad7359775689a8f5aca165.tar.bz2
am c4a8d2dd: Merge "Camera2/3: Create JPEG stream unconditionally." into jb-mr2-dev
* commit 'c4a8d2ddfff6d91e493692251733f20ece3e713d': Camera2/3: Create JPEG stream unconditionally.
Diffstat (limited to 'services')
-rw-r--r--services/camera/libcameraservice/Camera2Client.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp
index 081fdec..a1971e3 100644
--- a/services/camera/libcameraservice/Camera2Client.cpp
+++ b/services/camera/libcameraservice/Camera2Client.cpp
@@ -682,6 +682,22 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
return res;
}
+ // We could wait to create the JPEG output stream until first actual use
+ // (first takePicture call). However, this would substantially increase the
+ // first capture latency on HAL3 devices, and potentially on some HAL2
+ // devices. So create it unconditionally at preview start. As a drawback,
+ // this increases gralloc memory consumption for applications that don't
+ // ever take a picture.
+ // TODO: Find a better compromise, though this likely would involve HAL
+ // changes.
+ res = updateProcessorStream(mJpegProcessor, params);
+ if (res != OK) {
+ ALOGE("%s: Camera %d: Can't pre-configure still image "
+ "stream: %s (%d)",
+ __FUNCTION__, mCameraId, strerror(-res), res);
+ return res;
+ }
+
Vector<uint8_t> outputStreams;
bool callbacksEnabled = params.previewCallbackFlags &
CAMERA_FRAME_CALLBACK_FLAG_ENABLE_MASK;
@@ -719,18 +735,6 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
res = mStreamingProcessor->startStream(StreamingProcessor::PREVIEW,
outputStreams);
} else {
- // With recording hint set, we're going to be operating under the
- // assumption that the user will record video. To optimize recording
- // startup time, create the necessary output streams for recording and
- // video snapshot now if they don't already exist.
- res = updateProcessorStream(mJpegProcessor, params);
- if (res != OK) {
- ALOGE("%s: Camera %d: Can't pre-configure still image "
- "stream: %s (%d)",
- __FUNCTION__, mCameraId, strerror(-res), res);
- return res;
- }
-
if (!restart) {
res = mStreamingProcessor->updateRecordingRequest(params);
if (res != OK) {