summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/CameraSource.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-10-20 11:41:33 -0700
committerJames Dong <jdong@google.com>2010-10-20 11:44:15 -0700
commitf96c9d193c70c7216b34e6c65f046a09a2a81f14 (patch)
treedda3cf8ec6125b980f61df56b2bc144fef869159 /media/libstagefright/CameraSource.cpp
parent4d63523ece864ea783cf9ceeb036400af5804397 (diff)
downloadframeworks_av-f96c9d193c70c7216b34e6c65f046a09a2a81f14.zip
frameworks_av-f96c9d193c70c7216b34e6c65f046a09a2a81f14.tar.gz
frameworks_av-f96c9d193c70c7216b34e6c65f046a09a2a81f14.tar.bz2
Fix an issue where the video size was incorrectly retrieved from preview size
bug - 3115814 Change-Id: I6aa59b3182ceee35c6d6ef54ff520f81077873f0
Diffstat (limited to 'media/libstagefright/CameraSource.cpp')
-rw-r--r--media/libstagefright/CameraSource.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/media/libstagefright/CameraSource.cpp b/media/libstagefright/CameraSource.cpp
index df95cf7..95afb1d 100644
--- a/media/libstagefright/CameraSource.cpp
+++ b/media/libstagefright/CameraSource.cpp
@@ -347,9 +347,21 @@ status_t CameraSource::checkVideoSize(
const CameraParameters& params,
int32_t width, int32_t height) {
+ // The actual video size is the same as the preview size
+ // if the camera hal does not support separate video and
+ // preview output. In this case, we retrieve the video
+ // size from preview.
int32_t frameWidthActual = -1;
int32_t frameHeightActual = -1;
- params.getPreviewSize(&frameWidthActual, &frameHeightActual);
+ Vector<Size> sizes;
+ params.getSupportedVideoSizes(sizes);
+ if (sizes.size() == 0) {
+ // video size is the same as preview size
+ params.getPreviewSize(&frameWidthActual, &frameHeightActual);
+ } else {
+ // video size may not be the same as preview
+ params.getVideoSize(&frameWidthActual, &frameHeightActual);
+ }
if (frameWidthActual < 0 || frameHeightActual < 0) {
LOGE("Failed to retrieve video frame size (%dx%d)",
frameWidthActual, frameHeightActual);