diff options
author | Likai Ding <likaid@codeaurora.org> | 2014-07-08 15:16:27 +0800 |
---|---|---|
committer | Leena Winterrowd <lenhardw@codeaurora.org> | 2014-08-21 16:41:55 -0700 |
commit | c559299ddc350be60621e99c9f7fac5ee440c909 (patch) | |
tree | e296310c98375ba72446e265124061d4645d22f7 | |
parent | 124c6314453da73f72ee47b80ffbdd725da86e2c (diff) | |
download | android_packages_apps_Snap-c559299ddc350be60621e99c9f7fac5ee440c909.tar.gz android_packages_apps_Snap-c559299ddc350be60621e99c9f7fac5ee440c909.tar.bz2 android_packages_apps_Snap-c559299ddc350be60621e99c9f7fac5ee440c909.zip |
SnapdragonCamera: Make panorama frame size configurable
For low RAM devices, allow reduction of the panorama frame size to
save memory via the 'panorama_frame_size_reduction' config option.
Change-Id: I26b98699341d5eedfe2ebe8a6ed417fe62933bd5
CRs-Fixed: 669381
-rw-r--r-- | res/values/config.xml | 4 | ||||
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaModule.java | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/res/values/config.xml b/res/values/config.xml index 33e1e146b..24f790c4e 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -19,4 +19,8 @@ <resources> <!-- Maximum recording length in milliseconds. 0 means unlimited. --> <integer name="max_video_recording_length">0</integer> + + <!-- This value may be tweaked to save memory on low RAM devices. The value + is the percentage of camera preview height/width to scale to. --> + <integer name="panorama_frame_size_reduction">100</integer> </resources> diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java index 225981808..4594b2ac6 100644 --- a/src/com/android/camera/WideAnglePanoramaModule.java +++ b/src/com/android/camera/WideAnglePanoramaModule.java @@ -16,6 +16,7 @@ package com.android.camera; +import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; @@ -811,8 +812,15 @@ public class WideAnglePanoramaModule return; } - mMosaicFrameProcessor.initialize( - mCameraPreviewWidth, mCameraPreviewHeight, getPreviewBufSize()); + int perct = 100; + final ActivityManager am = (ActivityManager) + mActivity.getSystemService(Context.ACTIVITY_SERVICE); + if (am.isLowRamDevice()) { + perct = mActivity.getResources().getInteger(R.integer.panorama_frame_size_reduction); + } + + mMosaicFrameProcessor.initialize(mCameraPreviewWidth * perct / 100, + mCameraPreviewHeight * perct / 100, getPreviewBufSize()); mMosaicFrameProcessorInitialized = true; } |