diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-06-18 08:40:39 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-06-18 08:40:39 -0700 |
commit | 74cfa5b792fc17d7afd3e833d552fa0ec45ea977 (patch) | |
tree | 6493a8551b1dc700b93107361670dc86a0aeb57f /services/camera/libcameraservice/Camera2Device.cpp | |
parent | e4aacc3be5f9a7128a0865a6878b644a05d25616 (diff) | |
parent | c94cd19694ea0befe2eb22735c50b00070f006d9 (diff) | |
download | frameworks_av-74cfa5b792fc17d7afd3e833d552fa0ec45ea977.zip frameworks_av-74cfa5b792fc17d7afd3e833d552fa0ec45ea977.tar.gz frameworks_av-74cfa5b792fc17d7afd3e833d552fa0ec45ea977.tar.bz2 |
Merge "Camera2: Handle preview orientation changes."
Diffstat (limited to 'services/camera/libcameraservice/Camera2Device.cpp')
-rw-r--r-- | services/camera/libcameraservice/Camera2Device.cpp | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp index 08e3cc0..4761263 100644 --- a/services/camera/libcameraservice/Camera2Device.cpp +++ b/services/camera/libcameraservice/Camera2Device.cpp @@ -205,6 +205,27 @@ status_t Camera2Device::getStreamInfo(int id, return OK; } +status_t Camera2Device::setStreamTransform(int id, + int transform) { + ALOGV("%s: E", __FUNCTION__); + bool found = false; + StreamList::iterator streamI; + for (streamI = mStreams.begin(); + streamI != mStreams.end(); streamI++) { + if ((*streamI)->getId() == id) { + found = true; + break; + } + } + if (!found) { + ALOGE("%s: Camera %d: Stream %d does not exist", + __FUNCTION__, mId, id); + return BAD_VALUE; + } + + return (*streamI)->setTransform(transform); +} + status_t Camera2Device::deleteStream(int id) { ALOGV("%s: E", __FUNCTION__); bool found = false; @@ -674,10 +695,8 @@ status_t Camera2Device::StreamAdapter::connectToDevice( return res; } - res = native_window_set_buffers_transform(mConsumerInterface.get(), 0); + res = setTransform(0); if (res != OK) { - ALOGE("%s: Unable to configure stream transform: %s (%d)", - __FUNCTION__, strerror(-res), res); return res; } @@ -802,6 +821,21 @@ status_t Camera2Device::StreamAdapter::disconnect() { return OK; } +status_t Camera2Device::StreamAdapter::setTransform(int transform) { + status_t res; + if (mState < CONNECTED) { + ALOGE("%s: Cannot set transform on unconnected stream", __FUNCTION__); + return INVALID_OPERATION; + } + res = native_window_set_buffers_transform(mConsumerInterface.get(), + transform); + if (res != OK) { + ALOGE("%s: Unable to configure stream transform to %x: %s (%d)", + __FUNCTION__, transform, strerror(-res), res); + } + return res; +} + status_t Camera2Device::StreamAdapter::dump(int fd, const Vector<String16>& args) { String8 result = String8::format(" Stream %d: %d x %d, format 0x%x\n", |