From f96c9d193c70c7216b34e6c65f046a09a2a81f14 Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 20 Oct 2010 11:41:33 -0700 Subject: Fix an issue where the video size was incorrectly retrieved from preview size bug - 3115814 Change-Id: I6aa59b3182ceee35c6d6ef54ff520f81077873f0 --- media/libstagefright/CameraSource.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 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); -- cgit v1.1