summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-06-13 10:43:48 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-06-13 10:43:48 -0700
commit2b5f8f451d5459b17a7a99637f99a950fd74cc96 (patch)
tree7050d51f9bf6bebbc976c3766a017934d9e173eb /services
parentbb398a6394dfddc69559cbc62da24571af976fff (diff)
parent4541531a6e64329764ad7359775689a8f5aca165 (diff)
downloadframeworks_av-2b5f8f451d5459b17a7a99637f99a950fd74cc96.zip
frameworks_av-2b5f8f451d5459b17a7a99637f99a950fd74cc96.tar.gz
frameworks_av-2b5f8f451d5459b17a7a99637f99a950fd74cc96.tar.bz2
am 4541531a: am c4a8d2dd: Merge "Camera2/3: Create JPEG stream unconditionally." into jb-mr2-dev
* commit '4541531a6e64329764ad7359775689a8f5aca165': 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 5b8f25a..d1ab7eb 100644
--- a/services/camera/libcameraservice/Camera2Client.cpp
+++ b/services/camera/libcameraservice/Camera2Client.cpp
@@ -749,6 +749,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) ||
@@ -788,18 +804,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) {