diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2014-12-29 19:12:19 +0530 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-08-29 04:15:51 +0300 |
commit | d7afbe38bc2d9cf4f4738378f93a37777cdcc18a (patch) | |
tree | fe253a4db64fc25699b07f309c3587639070e1f6 | |
parent | 98a0154904534298b111ba0e583c5edd1b4f7c31 (diff) | |
download | android_packages_apps_Snap-d7afbe38bc2d9cf4f4738378f93a37777cdcc18a.tar.gz android_packages_apps_Snap-d7afbe38bc2d9cf4f4738378f93a37777cdcc18a.tar.bz2 android_packages_apps_Snap-d7afbe38bc2d9cf4f4738378f93a37777cdcc18a.zip |
Validate preview format before setting it to camera device.
For 720p and 1080p video resolutions, nv12_venus preview format is
being set. But few targets doesn't support this preview format. So
validate the preview format with supported list before setting it
to camera device.
Change-Id: I29b3b2b412b04abf82c61c732414e00aa1bff243
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 9 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 7 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 702518736..ac27cc412 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -137,6 +137,7 @@ public class CameraSettings { private static final String KEY_QC_SUPPORTED_VIDEO_CDS_MODES = "video-cds-mode-values"; private static final String KEY_QC_SUPPORTED_TNR_MODES = "tnr-mode-values"; private static final String KEY_QC_SUPPORTED_VIDEO_TNR_MODES = "video-tnr-mode-values"; + private static final String KEY_QC_SUPPORTED_PREVIEW_FORMATS = "preview-format-values"; private static final String KEY_SNAPCAM_SUPPORTED_HDR_MODES = "hdr-mode-values"; private static final String KEY_SNAPCAM_SUPPORTED_HDR_NEED_1X = "hdr-need-1x-values"; public static final String KEY_QC_AE_BRACKETING = "ae-bracket-hdr"; @@ -504,6 +505,14 @@ public class CameraSettings { return split(str); } + public static List<String> getSupportedPreviewFormats(Parameters params) { + String str = params.get(KEY_QC_SUPPORTED_PREVIEW_FORMATS); + if (str == null) { + return null; + } + return split(str); + } + // Splits a comma delimited string to an ArrayList of String. // Return null if the passing string is null or the size is 0. private static ArrayList<String> split(String str) { diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 2b3e944b0..c6b1b0421 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -2116,10 +2116,13 @@ public class VideoModule implements CameraModule, boolean isDuplicationEnabled = SystemProperties.getBoolean(PERSIST_CAMERA_CPP_DUPLICATION, true); if (isDuplicationEnabled && (mDesiredPreviewWidth == mProfile.videoFrameWidth) && - (mDesiredPreviewHeight == mProfile.videoFrameHeight)) { + (mDesiredPreviewHeight == mProfile.videoFrameHeight) + && CameraUtil.isSupported(FORMAT_NV12_VENUS, + CameraSettings.getSupportedPreviewFormats(mParameters))) { Log.v(TAG, "Preview is same as Video resolution, So preview format set to NV12_VENUS"); mParameters.set(KEY_PREVIEW_FORMAT, FORMAT_NV12_VENUS); - } else { + } else if (CameraUtil.isSupported(FORMAT_NV21, + CameraSettings.getSupportedPreviewFormats(mParameters))) { mParameters.set(KEY_PREVIEW_FORMAT, FORMAT_NV21); Log.v(TAG, "preview format set to NV21"); } |