diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2013-06-13 10:43:48 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-06-13 10:43:48 -0700 |
commit | 2b5f8f451d5459b17a7a99637f99a950fd74cc96 (patch) | |
tree | 7050d51f9bf6bebbc976c3766a017934d9e173eb /services | |
parent | bb398a6394dfddc69559cbc62da24571af976fff (diff) | |
parent | 4541531a6e64329764ad7359775689a8f5aca165 (diff) | |
download | frameworks_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.cpp | 28 |
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 ¶ms, 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 ¶ms, 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) { |