summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--proguard.flags2
-rw-r--r--res/values/arrays.xml47
-rw-r--r--res/values/qcomarrays.xml565
-rw-r--r--res/values/qcomstrings.xml627
-rw-r--r--res/values/strings.xml10
-rw-r--r--res/xml/video_preferences.xml19
-rw-r--r--src/com/android/camera/CameraSettings.java100
-rw-r--r--src/com/android/camera/VideoMenu.java3
-rw-r--r--src/com/android/camera/VideoModule.java136
-rw-r--r--src/com/android/camera/util/ApiHelper.java3
11 files changed, 1489 insertions, 25 deletions
diff --git a/Android.mk b/Android.mk
index 0aeee7467..bb2b0d8c9 100644
--- a/Android.mk
+++ b/Android.mk
@@ -23,7 +23,7 @@ LOCAL_AAPT_FLAGS := \
LOCAL_PACKAGE_NAME := Camera2
-LOCAL_SDK_VERSION := current
+#LOCAL_SDK_VERSION := current
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
diff --git a/proguard.flags b/proguard.flags
index 198df7556..d5e8d60b8 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -1,5 +1,7 @@
# Disable the warnings of using dynamic method call in common library.
-dontnote com.android.gallery3d.common.*
+#Avoid the library class dependency error
+-dontwarn android.view.inputmethod.InputMethodManager
# ctors of subclasses of CameraPreference are called with Java reflection.
-keep class * extends com.android.camera.CameraPreference {
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 56d70a3eb..b108b842d 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -21,21 +21,36 @@
<item>@string/pref_video_quality_entry_1080p</item>
<item>@string/pref_video_quality_entry_720p</item>
<item>@string/pref_video_quality_entry_480p</item>
- <item>@string/pref_video_quality_entry_high</item>
- <item>@string/pref_video_quality_entry_low</item>
+ <item>@string/pref_video_quality_entry_fwvga</item>
+ <item>@string/pref_video_quality_entry_wvga</item>
+ <item>@string/pref_video_quality_entry_vga</item>
+ <item>@string/pref_video_quality_entry_wqvga</item>
+ <item>@string/pref_video_quality_entry_cif</item>
+ <item>@string/pref_video_quality_entry_qvga</item>
+ <item>@string/pref_video_quality_entry_qcif</item>
</string-array>
<string-array name="pref_video_quality_entryvalues" translatable="false">
<!-- The integer value of CamcorderProfile.QUALITY_1080P -->
<item>6</item>
<!-- The integer value of CamcorderProfile.QUALITY_720P -->
- <item>@string/pref_video_quality_default</item>
+ <item>5</item>
<!-- The integer value of CamcorderProfile.QUALITY_480P -->
<item>4</item>
- <!-- The integer value of CamcorderProfile.QUALITY_HIGH -->
- <item>1</item>
- <!-- The integer value of CamcorderProfile.QUALITY_LOW -->
- <item>0</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_FWVGA -->
+ <item>8</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_WVGA -->
+ <item>9</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_VGA -->
+ <item>10</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_WQVGA -->
+ <item>11</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_CIF -->
+ <item>@string/pref_video_quality_default</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_QVGA -->
+ <item>7</item>
+ <!-- The integer value of CamcorderProfile.QUALITY_QCIF -->
+ <item>2</item>
</string-array>
<!-- These values correspond to the time interval between frame capture in millseconds
@@ -155,18 +170,27 @@
<!-- Camera Preferences Picture size dialog box entries -->
<string-array name="pref_camera_picturesize_entries" translatable="false">
<item>@string/pref_camera_picturesize_entry_13mp</item>
+ <item>@string/pref_camera_picturesize_entry_12mp</item>
+ <item>@string/pref_camera_picturesize_entry_8mp</item>
<item>@string/pref_camera_picturesize_entry_8mp</item>
<item>@string/pref_camera_picturesize_entry_5mp</item>
<item>@string/pref_camera_picturesize_entry_5mp</item>
<item>@string/pref_camera_picturesize_entry_5mp</item>
<item>@string/pref_camera_picturesize_entry_4mp</item>
<item>@string/pref_camera_picturesize_entry_3mp</item>
+ <item>@string/pref_camera_picturesize_entry_1920x1080</item>
<item>@string/pref_camera_picturesize_entry_2mp</item>
<item>@string/pref_camera_picturesize_entry_2mp_wide</item>
<item>@string/pref_camera_picturesize_entry_1_3mp</item>
+ <item>@string/pref_camera_picturesize_entry_1280x768</item>
+ <item>@string/pref_camera_picturesize_entry_1280x720</item>
<item>@string/pref_camera_picturesize_entry_1mp</item>
+ <item>@string/pref_camera_picturesize_entry_800x600</item>
+ <item>@string/pref_camera_picturesize_entry_800x480</item>
<item>@string/pref_camera_picturesize_entry_vga</item>
+ <item>@string/pref_camera_picturesize_entry_352x288</item>
<item>@string/pref_camera_picturesize_entry_qvga</item>
+ <item>@string/pref_camera_picturesize_entry_176x144</item>
</string-array>
<!-- When launching the camera app first time, we will set the picture
@@ -174,18 +198,27 @@
driver -->
<string-array name="pref_camera_picturesize_entryvalues" translatable="false">
<item>4128x3096</item>
+ <item>4000x3000</item>
<item>3264x2448</item>
+ <item>3200x2400</item>
<item>2592x1944</item>
<item>2592x1936</item>
<item>2560x1920</item>
<item>2688x1520</item>
<item>2048x1536</item>
+ <item>1920x1080</item>
<item>1600x1200</item>
<item>1920x1088</item>
<item>1280x960</item>
+ <item>1280x768</item>
+ <item>1280x720</item>
<item>1024x768</item>
+ <item>800x600</item>
+ <item>800x480</item>
<item>640x480</item>
+ <item>352x288</item>
<item>320x240</item>
+ <item>176x144</item>
</string-array>
<!-- Camera Preferences focus mode dialog box entries -->
diff --git a/res/values/qcomarrays.xml b/res/values/qcomarrays.xml
new file mode 100644
index 000000000..3d08bab1f
--- /dev/null
+++ b/res/values/qcomarrays.xml
@@ -0,0 +1,565 @@
+<!--
+ Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+
+ Not a Contribution.
+
+ Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <!-- Camera Preferences Power Mode dialog box entries -->
+ <string-array name="pref_camera_powermode_entries" translatable="false">
+ <item>@string/pref_camera_powermode_entry_lp</item>
+ <item>@string/pref_camera_powermode_entry_np</item>
+ </string-array>
+
+ <string-array name="pref_camera_powermode_entryvalues" translatable="false">
+ <item>@string/pref_camera_powermode_value_lp</item>
+ <item>@string/pref_camera_powermode_value_np</item>
+ </string-array>
+
+ <!-- Camera Preferences Picture format dialog box entries -->
+ <string-array name="pref_camera_picture_format_entries">
+ <item>@string/pref_camera_picture_format_entry_jpeg</item>
+ <item>@string/pref_camera_picture_format_entry_raw</item>
+ <item>@string/pref_camera_picture_format_entry_raw_yuv_422_sp</item>
+ <item>@string/pref_camera_picture_format_entry_raw_yuv_8bit_yuyv</item>
+ <item>@string/pref_camera_picture_format_entry_raw_yuv_8bit_yvyu</item>
+ <item>@string/pref_camera_picture_format_entry_raw_yuv_8bit_uyvy</item>
+ <item>@string/pref_camera_picture_format_entry_raw_yuv_8bit_vyuy</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_10gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_10grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_10rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_10bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_12gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_12grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_12rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_qcom_12bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_10gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_10grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_10rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_10bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_12gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_12grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_12rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_mipi_12bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10bggr</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12gbrg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12grbg</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12rggb</item>
+ <item>@string/pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12bggr</item>
+ </string-array>
+ <string-array name="pref_camera_picture_format_entryvalues">
+ <item>@string/pref_camera_picture_format_value_jpeg</item>
+ <item>@string/pref_camera_picture_format_value_raw</item>
+ <item>@string/pref_camera_picture_format_value_raw_yuv_422_sp</item>
+ <item>@string/pref_camera_picture_format_value_raw_yuv_8bit_yuyv</item>
+ <item>@string/pref_camera_picture_format_value_raw_yuv_8bit_yvyu</item>
+ <item>@string/pref_camera_picture_format_value_raw_yuv_8bit_uyvy</item>
+ <item>@string/pref_camera_picture_format_value_raw_yuv_8bit_vyuy</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_10gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_10grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_10rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_10bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_12gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_12grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_12rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_qcom_12bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_10gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_10grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_10rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_10bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_12gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_12grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_12rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_mipi_12bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_10gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_10grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_10rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_10bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_12gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_12grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_12rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_qcom_12bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_10gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_10grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_10rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_10bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_12gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_12grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_12rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_mipi_12bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain8_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain8_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain8_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain8_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_8gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_8grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_8rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_8bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_10gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_10grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_10rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_10bggr</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_12gbrg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_12grbg</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_12rggb</item>
+ <item>@string/pref_camera_picture_format_value_raw_bayer_ideal_plain16_12bggr</item>
+ </string-array>
+
+ <!-- Camera Preferences JPEG quality dialog box entries -->
+ <string-array name="pref_camera_jpegquality_entries" translatable="false">
+ <item>@string/pref_camera_jpegquality_entry_0</item>
+ <item>@string/pref_camera_jpegquality_entry_1</item>
+ <item>@string/pref_camera_jpegquality_entry_2</item>
+ <item>@string/pref_camera_jpegquality_entry_3</item>
+ <item>@string/pref_camera_jpegquality_entry_4</item>
+ <item>@string/pref_camera_jpegquality_entry_5</item>
+ <item>@string/pref_camera_jpegquality_entry_superfine</item>
+ <item>@string/pref_camera_jpegquality_entry_fine</item>
+ <item>@string/pref_camera_jpegquality_entry_normal</item>
+ </string-array>
+
+ <string-array name="pref_camera_jpegquality_entryvalues" translatable="false">
+ <item>55</item>
+ <item>65</item>
+ <item>75</item>
+ <item>85</item>
+ <item>95</item>
+ <item>100</item>
+ <item>superfine</item>
+ <item>fine</item>
+ <item>normal</item>
+ </string-array>
+
+ <!-- Camera Preferences Color effect dialog box entries -->
+ <string-array name="pref_camera_coloreffect_entries" translatable="false">
+ <item>@string/pref_camera_coloreffect_entry_none</item>
+ <item>@string/pref_camera_coloreffect_entry_mono</item>
+ <item>@string/pref_camera_coloreffect_entry_sepia</item>
+ <item>@string/pref_camera_coloreffect_entry_negative</item>
+ <item>@string/pref_camera_coloreffect_entry_solarize</item>
+ <item>@string/pref_camera_coloreffect_entry_posterize</item>
+ <item>@string/pref_camera_coloreffect_entry_aqua</item>
+ <item>@string/pref_camera_coloreffect_entry_emboss</item>
+ <item>@string/pref_camera_coloreffect_entry_sketch</item>
+ <item>@string/pref_camera_coloreffect_entry_neon</item>
+ <item>@string/pref_camera_coloreffect_entry_pastel</item>
+ <item>@string/pref_camera_coloreffect_entry_mosaic</item>
+ <item>@string/pref_camera_coloreffect_entry_redtint</item>
+ <item>@string/pref_camera_coloreffect_entry_bluetint</item>
+ <item>@string/pref_camera_coloreffect_entry_greentint</item>
+ </string-array>
+
+ <string-array name="pref_camera_coloreffect_entryvalues" translatable="false">
+ <item>none</item>
+ <item>mono</item>
+ <item>sepia</item>
+ <item>negative</item>
+ <item>solarize</item>
+ <item>posterize</item>
+ <item>aqua</item>
+ <item>emboss</item>
+ <item>sketch</item>
+ <item>neon</item>
+ <item>pastel</item>
+ <item>mosaic</item>
+ <item>red-tint</item>
+ <item>blue-tint</item>
+ <item>green-tint</item>
+ </string-array>
+
+ <!-- Camera Preferences AE Bracketing dialog box entries -->
+ <string-array name="pref_camera_ae_bracket_hdr_entries">
+ <item>@string/pref_camera_ae_bracket_hdr_entry_off</item>
+ <item>@string/pref_camera_ae_bracket_hdr_entry_on</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_ae_bracket_hdr_entryvalues">
+ <item>Off</item>
+ <item>AE-Bracket</item>
+ </string-array>
+
+ <!-- Camera Preferences Touch AF/AEC dialog box entries -->
+ <string-array name="pref_camera_touchafaec_entries">
+ <item>@string/pref_camera_touchafaec_entry_off</item>
+ <item>@string/pref_camera_touchafaec_entry_on</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_touchafaec_entryvalues">
+ <item>touch-off</item>
+ <item>touch-on</item>
+ </string-array>
+
+ <!-- DIS dialog box entries -->
+ <string-array name="pref_camera_dis_entries">
+ <item>@string/pref_camera_dis_entry_off</item>
+ <item>@string/pref_camera_dis_entry_on</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_dis_entryvalues">
+ <item>disable</item>
+ <item>enable</item>
+ </string-array>
+
+ <!-- Face Recognition dialog box entries -->
+ <string-array name="pref_camera_facerc_entries">
+ <item>@string/pref_camera_facerc_entry_off</item>
+ <item>@string/pref_camera_facerc_entry_on</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_facerc_entryvalues">
+ <item>off</item>
+ <item>on</item>
+ </string-array>
+
+ <!-- Camera Preferences MultiLevel dialog box entries -->
+ <string-array name="pref_camera_sharpness_entries">
+ <item>@string/pref_camera_sharpness_entry_level0</item>
+ <item>@string/pref_camera_sharpness_entry_level1</item>
+ <item>@string/pref_camera_sharpness_entry_level2</item>
+ <item>@string/pref_camera_sharpness_entry_level3</item>
+ <item>@string/pref_camera_sharpness_entry_level4</item>
+ <item>@string/pref_camera_sharpness_entry_level5</item>
+ <item>@string/pref_camera_sharpness_entry_level6</item>
+ </string-array>
+
+ <!-- Camera Preferences MultiLevel dialog box entries -->
+ <string-array name="pref_camera_contrast_entries">
+ <item>@string/pref_camera_contrast_entry_level0</item>
+ <item>@string/pref_camera_contrast_entry_level1</item>
+ <item>@string/pref_camera_contrast_entry_level2</item>
+ <item>@string/pref_camera_contrast_entry_level3</item>
+ <item>@string/pref_camera_contrast_entry_level4</item>
+ <item>@string/pref_camera_contrast_entry_level5</item>
+ <item>@string/pref_camera_contrast_entry_level6</item>
+ <item>@string/pref_camera_contrast_entry_level7</item>
+ <item>@string/pref_camera_contrast_entry_level8</item>
+ <item>@string/pref_camera_contrast_entry_level9</item>
+ <item>@string/pref_camera_contrast_entry_level10</item>
+ </string-array>
+
+ <!-- Camera Preferences Saturation dialog box entries -->
+ <string-array name="pref_camera_saturation_entries">
+ <item>@string/pref_camera_saturation_entry_level0</item>
+ <item>@string/pref_camera_saturation_entry_level1</item>
+ <item>@string/pref_camera_saturation_entry_level2</item>
+ <item>@string/pref_camera_saturation_entry_level3</item>
+ <item>@string/pref_camera_saturation_entry_level4</item>
+ <item>@string/pref_camera_saturation_entry_level5</item>
+ <item>@string/pref_camera_saturation_entry_level6</item>
+ <item>@string/pref_camera_saturation_entry_level7</item>
+ <item>@string/pref_camera_saturation_entry_level8</item>
+ <item>@string/pref_camera_saturation_entry_level9</item>
+ <item>@string/pref_camera_saturation_entry_level10</item>
+ </string-array>
+
+ <!-- Entry Valur array for sharpness -->
+ <string-array name="pref_camera_multilevel_sharpness_entryvalues">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ <item>4</item>
+ <item>5</item>
+ <item>6</item>
+ </string-array>
+
+ <!-- Entry values array is shared between Saturation & Contrast -->
+ <string-array name="pref_camera_multilevel_entryvalues">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ <item>4</item>
+ <item>5</item>
+ <item>6</item>
+ <item>7</item>
+ <item>8</item>
+ <item>9</item>
+ <item>10</item>
+ </string-array>
+
+ <!-- Camera Preferences ISO dialog box entries -->
+ <string-array name="pref_camera_iso_entries">
+ <item>@string/pref_camera_iso_entry_auto</item>
+ <item>@string/pref_camera_iso_entry_isodeblur</item>
+ <item>@string/pref_camera_iso_entry_iso100</item>
+ <item>@string/pref_camera_iso_entry_iso200</item>
+ <item>@string/pref_camera_iso_entry_iso400</item>
+ <item>@string/pref_camera_iso_entry_iso800</item>
+ <item>@string/pref_camera_iso_entry_iso1600</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_iso_entryvalues">
+ <item>@string/pref_camera_iso_value_auto</item>
+ <item>@string/pref_camera_iso_value_isodeblur</item>
+ <item>@string/pref_camera_iso_value_iso100</item>
+ <item>@string/pref_camera_iso_value_iso200</item>
+ <item>@string/pref_camera_iso_value_iso400</item>
+ <item>@string/pref_camera_iso_value_iso800</item>
+ <item>@string/pref_camera_iso_value_iso1600</item>
+ </string-array>
+
+ <!-- Camera Preferences Anti Banding dialog box entries -->
+ <string-array name="pref_camera_antibanding_entries">
+ <item>@string/pref_camera_antibanding_entry_0</item>
+ <item>@string/pref_camera_antibanding_entry_1</item>
+ <item>@string/pref_camera_antibanding_entry_2</item>
+ <item>@string/pref_camera_antibanding_entry_3</item>
+ </string-array>
+
+ <string-array name="pref_camera_antibanding_entryvalues">
+ <item>off</item>
+ <item>50hz</item>
+ <item>60hz</item>
+ <item>auto</item>
+ </string-array>
+
+ <!-- Camera Preferences Histogram dialog box entries -->
+ <string-array name="pref_camera_histogram_entries">
+ <item>@string/pref_camera_histogram_entry_enable</item>
+ <item>@string/pref_camera_histogram_entry_disable</item>
+ </string-array>
+
+ <!-- Video Preferences High Frame Rate dialog box entries -->
+ <string-array name="pref_camera_hfr_entries">
+ <item>@string/pref_camera_hfr_entry_off</item>
+ <item>@string/pref_camera_hfr_entry_2x</item>
+ <item>@string/pref_camera_hfr_entry_3x</item>
+ <item>@string/pref_camera_hfr_entry_4x</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_hfr_entryvalues">
+ <item>@string/pref_camera_hfr_value_off</item>
+ <item>@string/pref_camera_hfr_value_2x</item>
+ <item>@string/pref_camera_hfr_value_3x</item>
+ <item>@string/pref_camera_hfr_value_4x</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_histogram_entryvalues">
+ <item>@string/pref_camera_histogram_value_enable</item>
+ <item>@string/pref_camera_histogram_value_disable</item>
+ </string-array>
+
+ <!-- Camera Preferences Face Detection dialog box entries -->
+ <string-array name="pref_camera_facedetection_entries">
+ <item>@string/pref_camera_facedetection_entry_off</item>
+ <item>@string/pref_camera_facedetection_entry_on</item>
+ </string-array>
+
+ <string-array name="pref_camera_facedetection_entryvalues" translatable="false">
+ <item>off</item>
+ <item>on</item>
+ </string-array>
+
+ <!-- Camera Preferences Wavelet Denoise dialog box entries -->
+ <string-array name="pref_camera_denoise_entryvalues" translatable="false">
+ <item>denoise-off</item>
+ <item>denoise-on</item>
+ </string-array>
+
+ <string-array name="pref_camera_denoise_entries" translatable="false">
+ <item>@string/pref_camera_denoise_entry_off</item>
+ <item>@string/pref_camera_denoise_entry_on</item>
+ </string-array>
+
+ <!-- Camera Preferences Auto Scene Detection dialog box entries -->
+ <string-array name="pref_camera_scenedetect_entries" translatable="false">
+ <item>@string/pref_camera_scenedetect_entry_off</item>
+ <item>@string/pref_camera_scenedetect_entry_on</item>
+ </string-array>
+ <string-array name="pref_camera_scenedetect_entryvalues" translatable="false">
+ <item>off</item>
+ <item>on</item>
+ </string-array>
+
+ <!-- Camera Preferences Auto Exposure dialog box entries -->
+ <string-array name="pref_camera_autoexposure_entries">
+ <item>@string/pref_camera_autoexposure_entry_frameaverage</item>
+ <item>@string/pref_camera_autoexposure_entry_centerweighted</item>
+ <item>@string/pref_camera_autoexposure_entry_spotmetering</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_autoexposure_entryvalues">
+ <item>@string/pref_camera_autoexposure_value_frameaverage</item>
+ <item>@string/pref_camera_autoexposure_value_centerweighted</item>
+ <item>@string/pref_camera_autoexposure_value_spotmetering</item>
+ </string-array>
+ <!-- Camera Preferences Video Encoder dialog box entries -->
+ <string-array name="pref_camera_videoencoder_entries" translatable="false">
+ <item>@string/pref_camera_videoencoder_entry_0</item>
+ <item>@string/pref_camera_videoencoder_entry_1</item>
+ <item>@string/pref_camera_videoencoder_entry_2</item>
+ </string-array>
+
+ <string-array name="pref_camera_videoencoder_entryvalues" translatable="false">
+ <item>m4v</item>
+ <item>h263</item>
+ <item>h264</item>
+ </string-array>
+
+ <!-- Camera Preferences Audio Encoder dialog box entries -->
+ <string-array name="pref_camera_audioencoder_entries" translatable="false">
+ <item>@string/pref_camera_audioencoder_entry_0</item>
+ <item>@string/pref_camera_audioencoder_entry_1</item>
+ </string-array>
+
+ <string-array name="pref_camera_audioencoder_entryvalues" translatable="false">
+ <item>amrnb</item>
+ <item>aac</item>
+ </string-array>
+
+ <!-- Camera Preferences Video Duration dialog box entries -->
+ <string-array name="pref_camera_video_duration_entries" translatable="false">
+ <item>@string/pref_camera_video_duration_entry_mms</item>
+ <item>@string/pref_camera_video_duration_entry_10</item>
+ <item>@string/pref_camera_video_duration_entry_30</item>
+ </string-array>
+
+ <!-- The numbers are in minutes, except -1 means the duration suitable for mms. -->
+ <string-array name="pref_camera_video_duration_entryvalues" translatable="false">
+ <item>-1</item>
+ <item>10</item>
+ <item>30</item>
+ </string-array>
+
+ <!-- Camera Preferences Skin Tone Enhancement dialog box entries -->
+ <string-array name="pref_camera_skinToneEnhancement_entries">
+ <item>@string/pref_camera_skinToneEnhancement_entry_enable</item>
+ <item>@string/pref_camera_skinToneEnhancement_entry_disable</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_skinToneEnhancement_entryvalues">
+ <item>@string/pref_camera_skinToneEnhancement_value_enable</item>
+ <item>@string/pref_camera_skinToneEnhancement_value_disable</item>
+ </string-array>
+
+ <!-- Camera Preferences Redeye Reduction dialog box entries -->
+ <string-array name="pref_camera_redeyereduction_entries" translatable="false">
+ <item>@string/pref_camera_redeyereduction_entry_enable</item>
+ <item>@string/pref_camera_redeyereduction_entry_disable</item>
+ </string-array>
+
+ <string-array name="pref_camera_redeyereduction_entryvalues" translatable="false">
+ <item>enable</item>
+ <item>disable</item>
+ </string-array>
+ <!-- Camera Preferences Selectable Zone AF dialog box entries -->
+ <string-array name="pref_camera_selectablezoneaf_entries" translatable="false">
+ <item>@string/pref_camera_selectablezoneaf_entry_auto</item>
+ <item>@string/pref_camera_selectablezoneaf_entry_spotmetering</item>
+ <item>@string/pref_camera_selectablezoneaf_entry_centerweighted</item>
+ <item>@string/pref_camera_selectablezoneaf_entry_frameaverage</item>
+ </string-array>
+
+ <string-array name="pref_camera_selectablezoneaf_entryvalues" translatable="false">
+ <item>@string/pref_camera_selectablezoneaf_value_auto</item>
+ <item>@string/pref_camera_selectablezoneaf_value_spotmetering</item>
+ <item>@string/pref_camera_selectablezoneaf_value_centerweighted</item>
+ <item>@string/pref_camera_selectablezoneaf_value_frameaverage</item>
+ </string-array>
+
+ <!-- ZSL dialog box entries -->
+ <string-array name="pref_camera_zsl_entries" translatable="false">
+ <item>@string/pref_camera_zsl_entry_off</item>
+ <item>@string/pref_camera_zsl_entry_on</item>
+ </string-array>
+
+ <string-array name="pref_camera_zsl_entryvalues" translatable="false">
+ <item>@string/pref_camera_zsl_value_off</item>
+ <item>@string/pref_camera_zsl_value_on</item>
+ </string-array>
+
+ <!-- Video HDR dialog box entries -->
+ <string-array name="pref_camera_video_hdr_entries" translatable="false">
+ <item>@string/pref_camera_video_hdr_entry_off</item>
+ <item>@string/pref_camera_video_hdr_entry_on</item>
+ </string-array>
+
+ <string-array name="pref_camera_video_hdr_entryvalues" translatable="false">
+ <item>@string/pref_camera_video_hdr_value_off</item>
+ <item>@string/pref_camera_video_hdr_value_on</item>
+ </string-array>
+</resources>
+
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
new file mode 100644
index 000000000..05eec50a5
--- /dev/null
+++ b/res/values/qcomstrings.xml
@@ -0,0 +1,627 @@
+<!--
+ Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+
+ Not a Contribution.
+
+ Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <!-- Video quality setting entry. Videos will be recorded in FWVGA quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_fwvga" translatable="false">FWVGA</string>
+ <!-- Video quality setting entry. Videos will be recorded in WVGA quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_wvga" translatable="false">WVGA</string>
+ <!-- Video quality setting entry. Videos will be recorded in VGA quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_vga" translatable="false">VGA</string>
+ <!-- Video quality setting entry. Videos will be recorded in WQVGA quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_wqvga" translatable="false">WQVGA</string>
+ <!-- Video quality setting entry. Videos will be recorded in CIF quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_cif" translatable="false">CIF</string>
+ <!-- Video quality setting entry. Videos will be recorded in QVGA quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_qvga" translatable="false">QVGA</string>
+ <!-- Video quality setting entry. Videos will be recorded in QCIF quality. [CHAR LIMIT=24] -->
+ <string name="pref_video_quality_entry_qcif" translatable="false">QCIF</string>
+
+ <!-- Settings screen, Power Mode title -->
+ <string name="pref_camera_powermode_title">Power Mode</string>
+
+ <!-- Settings screen, Power mode dialog radio button choices -->
+ <string name="pref_camera_powermode_entry_lp">Low_Power</string>
+ <string name="pref_camera_powermode_entry_np">Normal_Power</string>
+
+ <!-- Settings screen, Power mode dialog radio button choices -->
+ <string name="pref_camera_powermode_value_lp">Low_Power</string>
+ <string name="pref_camera_powermode_value_np">Normal_Power</string>
+
+ <!-- Default Power mode.. -->
+ <string name="pref_camera_powermode_default" translatable="false">Normal_Power</string>
+
+ <!-- Default auto exposure setting. Do not translate. -->
+ <string name="pref_camera_autoexposure_default">frame-average</string>
+ <!-- Settings screen, Select auto exposure title -->
+ <string name="pref_camera_autoexposure_title">Select Auto Exposure Mode</string>
+
+ <!-- Settings screen, auto exposure dialog radio button choices -->
+ <string name="pref_camera_autoexposure_entry_frameaverage">Frame Average</string>
+ <string name="pref_camera_autoexposure_entry_centerweighted">Center Weighted</string>
+ <string name="pref_camera_autoexposure_entry_spotmetering">Spot Metering</string>
+
+ <!-- Auto exposure entry values. Do not translate. -->
+ <string name="pref_camera_autoexposure_value_frameaverage">frame-average</string>
+ <string name="pref_camera_autoexposure_value_centerweighted">center-weighted</string>
+ <string name="pref_camera_autoexposure_value_spotmetering">spot-metering</string>
+
+ <!-- Settings screen, Video encoder title -->
+ <string name="pref_camera_videoencoder_title">Video Encoder</string>
+
+ <!-- Settings screen, Video encoder dialog radio button choices -->
+ <string name="pref_camera_videoencoder_entry_0">MPEG4</string>
+ <string name="pref_camera_videoencoder_entry_1">H263</string>
+ <string name="pref_camera_videoencoder_entry_2">H264</string>
+
+ <!-- Default video encoder setting. A numerical value. -->
+ <string name="pref_camera_videoencoder_default" translatable="false">h264</string>
+
+ <!-- Settings screen, Video encoder dialog title -->
+ <string name="pref_camera_videoencoder_dialogtitle">Video Encoder</string>
+
+ <!-- Default audio encoder setting. A numerical value. -->
+ <string name="pref_camera_audioencoder_default" translatable="false">aac</string>
+
+ <!-- Settings screen, Audio encoder title -->
+ <string name="pref_camera_audioencoder_title">Audio Encoder</string>
+
+ <!-- Settings screen, Audio encoder dialog radio button choices -->
+ <string name="pref_camera_audioencoder_entry_0">AMRNB</string>
+ <string name="pref_camera_audioencoder_entry_1">AAC</string>
+ <!-- Default video duration setting. A numerical value.-->
+ <string name="pref_camera_video_duration_default" translatable="false">10</string>
+
+ <!-- Settings screen, Video duration title -->
+ <string name="pref_camera_video_duration_title">Video duration</string>
+
+ <!-- Settings screen, Video duration dialog radio button choices -->
+ <string name="pref_camera_video_duration_entry_mms">30 seconds(MMS)</string>
+ <string name="pref_camera_video_duration_entry_10">10 minutes</string>
+ <string name="pref_camera_video_duration_entry_30">30 minutes</string>
+
+ <!-- Default Skin Tone Enhancement setting. Do not translate. -->
+ <string name="pref_camera_skinToneEnhancement_default">disable</string>
+
+ <!-- Settings screen, Select Skin Tone Enhancement title -->
+ <string name="pref_camera_skinToneEnhancement_title">Skin Tone Enhancement</string>
+
+ <!-- Settings screen, Skin Tone Enhancement radio button choices -->
+ <string name="pref_camera_skinToneEnhancement_entry_enable">Enable</string>
+ <string name="pref_camera_skinToneEnhancement_entry_disable">Disable</string>
+
+ <!-- Skin Tone Enhancement entry values. Do not translate. -->
+ <string name="pref_camera_skinToneEnhancement_value_enable">enable</string>
+ <string name="pref_camera_skinToneEnhancement_value_disable">disable</string>
+ <!-- Settings screen, setting title text for ZSL-->
+ <string name="pref_camera_zsl_title">ZSL</string>
+
+ <string name="pref_camera_zsl_default" translatable="false">off</string>
+
+ <!-- Default selectable zone af setting. Do not translate. -->
+ <string name="pref_camera_selectablezoneaf_default">auto</string>
+
+ <!-- Settings screen, Selectable zone af title -->
+ <string name="pref_camera_selectablezoneaf_title"> Selectable Zone Auto Focus</string>
+
+ <!-- Settings screen, Selectable Zone Af dialog radio button choices -->
+ <string name="pref_camera_selectablezoneaf_entry_auto">Auto</string>
+ <string name="pref_camera_selectablezoneaf_entry_spotmetering">Spot Metering</string>
+ <string name="pref_camera_selectablezoneaf_entry_centerweighted">Center Weighted</string>
+ <string name="pref_camera_selectablezoneaf_entry_frameaverage">Frame Average</string>
+
+ <!-- Auto exposure entry values. Do not translate. -->
+ <string name="pref_camera_selectablezoneaf_value_auto">auto</string>
+ <string name="pref_camera_selectablezoneaf_value_spotmetering">spot-metering</string>
+ <string name="pref_camera_selectablezoneaf_value_centerweighted">center-weighted</string>
+ <string name="pref_camera_selectablezoneaf_value_frameaverage">frame-average</string>
+
+ <!-- Settings screen, ZSL location dialog choices -->
+ <string name="pref_camera_zsl_entry_off">Off</string>
+ <string name="pref_camera_zsl_entry_on">On</string>
+
+ <string name="pref_camera_zsl_value_off">off</string>
+ <string name="pref_camera_zsl_value_on">on</string>
+
+ <!-- Settings screen, Video HDR location dialog choices -->
+ <string name="pref_camera_video_hdr_entry_off">Off</string>
+ <string name="pref_camera_video_hdr_entry_on">On</string>
+
+ <string name="pref_camera_video_hdr_value_off">off</string>
+ <string name="pref_camera_video_hdr_value_on">on</string>
+
+ <!-- Settings screen, setting title text for Video HDR-->
+ <string name="pref_camera_video_hdr_title">Video HDR</string>
+
+ <string name="pref_camera_video_hdr_default" translatable="false">off</string>
+
+ <!-- Default face detection setting. -->
+ <string name="pref_camera_facedetection_default" translatable="false">on</string>
+
+ <!-- Settings screen, Select Face Detection -->
+ <string name="pref_camera_facedetection_title">Face Detection</string>
+
+ <!-- Settings menu, Face Detection choices -->
+ <string name="pref_camera_facedetection_entry_off">Off</string>
+ <string name="pref_camera_facedetection_entry_on">On</string>
+
+ <!-- Default redeye reduction setting. -->
+ <string name="pref_camera_redeyereduction_default" translatable="false">disable</string>
+
+ <!-- Settings screen, Select Redeye Reduction -->
+ <string name="pref_camera_redeyereduction_title">Redeye Reduction</string>
+
+ <!-- Settings menu, redeye reduction choices -->
+ <string name="pref_camera_redeyereduction_entry_enable">Enable</string>
+ <string name="pref_camera_redeyereduction_entry_disable">Disable</string>
+ <!-- Default mce setting. Do not translate. -->
+ <string name="pref_camera_mce_default">enable</string>
+
+ <!-- The message is shown in dialog when the app encounters an unsupported resolution for HFR mode -->
+ <string name="error_app_unsupported_hfr">HFR is not supported for selected resolution</string>
+
+ <!-- The message is shown in dialog when the app encounters an unsupported video codec for HFR mode -->
+ <string name="error_app_unsupported_hfr_codec">Only H264 video encoding is supported when HFR is ON</string>
+
+ <!-- The message is shown in dialog when the app encounters an unsupported video resolution-->
+ <string name="error_app_unsupported">Unsupported video resolution for this encoder type</string>
+
+ <!--The message is shown in dialog when the raw snapshot is selected in zsl mode-->
+ <string name="error_app_unsupported_raw">Raw picture format is not supported
+ in zsl mode
+ </string>
+
+ <string name="error_app_unsupported_hdr_zsl">HDR is not supported in zsl
+ mode</string>
+
+ <!-- Settings screen, AE bracketing and HDR location dialog choices -->
+ <string name="pref_camera_ae_bracket_hdr_entry_ae_bracket">AE-Bracket</string>
+
+ <string name="pref_camera_ae_bracket_hdr_value_ae_bracket">AE-Bracket</string>
+
+ <string name="pref_camera_ae_bracket_hdr_title" translatable="false">AE-Bracket</string>
+
+ <string name="pref_camera_ae_bracket_hdr_default" translatable="false">Off</string>
+
+ <string name="pref_camera_ae_bracket_hdr_entry_on">On</string>
+
+ <string name="pref_camera_ae_bracket_hdr_entry_off">Off</string>
+
+ <string name="err_app_unsupport_ae_bracket_code">no ae bracket support by Apps now</string>
+
+ <!-- The messsage shown if user selects a snapshot resolution lower than the current video size. -->
+ <string name="snapshot_lower_than_video">Video snapshot size lower than video size. Capping to Video size. Please select a resolution higher or equal to the current video size. </string>
+
+ <!-- The messsage shown if user selects a snapshot resolution in low power mode. -->
+ <string name="snapshotsize_low_powermode">We do not support picture
+ resolution in Low Power Mode. Video size snapshot will be taken. Please
+ select High power mode for picture size.
+ </string>
+
+ <!-- The messsage shown if user tries to take snapshot during D1/QCIF resolution. -->
+ <string name="snapshot_qcif_and_d1">Only Video size snapshot supported for this resolution. </string>
+
+ <!-- Default hfr setting. Do not translate. -->
+ <string name="pref_camera_hfr_default">off</string>
+
+ <!-- Settings screen, Select hfr title -->
+ <string name="pref_camera_hfr_title">Video High FrameRate</string>
+
+ <!-- Settings screen, hfr radio button choices -->
+ <string name="pref_camera_hfr_entry_off">Off</string>
+ <string name="pref_camera_hfr_entry_2x">60</string>
+ <string name="pref_camera_hfr_entry_3x">90</string>
+ <string name="pref_camera_hfr_entry_4x">120</string>
+
+ <!-- HFR entry values. Do not translate. -->
+ <string name="pref_camera_hfr_value_off">off</string>
+ <string name="pref_camera_hfr_value_2x">60</string>
+ <string name="pref_camera_hfr_value_3x">90</string>
+ <string name="pref_camera_hfr_value_4x">120</string>
+
+ <!-- Denoise Settings screen, setting title text -->
+ <string name="pref_camera_denoise_title">Wavelet Denoise Mode</string>
+ <string name="pref_camera_denoise_default" translatable="false">denoise-on</string>
+
+ <!-- Denoise Settings screen, Record location dialog choices -->
+ <string name="pref_camera_denoise_entry_off">Off</string>
+ <string name="pref_camera_denoise_entry_on">On</string>
+
+ <!-- Default iso setting. Do not translate. -->
+ <string name="pref_camera_iso_default">auto</string>
+
+ <!-- Settings screen, Select Iso title -->
+ <string name="pref_camera_iso_title">Select ISO</string>
+
+ <!-- Settings screen, ISO dialog radio button choices -->
+ <string name="pref_camera_iso_entry_auto">Auto</string>
+ <string name="pref_camera_iso_entry_isodeblur">ISO Auto(HJR)</string>
+ <string name="pref_camera_iso_entry_iso100">ISO100</string>
+ <string name="pref_camera_iso_entry_iso200">ISO200</string>
+ <string name="pref_camera_iso_entry_iso400">ISO400</string>
+ <string name="pref_camera_iso_entry_iso800">ISO800</string>
+ <string name="pref_camera_iso_entry_iso1600">ISO1600</string>
+
+ <!-- ISO entry values. Do not translate. -->
+ <string name="pref_camera_iso_value_auto">auto</string>
+ <string name="pref_camera_iso_value_isodeblur">ISO_HJR</string>
+ <string name="pref_camera_iso_value_iso100">ISO100</string>
+ <string name="pref_camera_iso_value_iso200">ISO200</string>
+ <string name="pref_camera_iso_value_iso400">ISO400</string>
+ <string name="pref_camera_iso_value_iso800">ISO800</string>
+ <string name="pref_camera_iso_value_iso1600">ISO1600</string>
+
+ <!-- Settings screen, Anti Banding title -->
+ <string name="pref_camera_antibanding_title">Anti Banding</string>
+
+ <!-- Default Anti Banding setting. -->
+ <string name="pref_camera_antibanding_default">off</string>
+
+ <!-- Settings screen, Anti Banding entries -->
+ <string name="pref_camera_antibanding_entry_0">Off</string>
+ <string name="pref_camera_antibanding_entry_1">50 Hz</string>
+ <string name="pref_camera_antibanding_entry_2">60 Hz</string>
+ <string name="pref_camera_antibanding_entry_3">Auto</string>
+
+ <!-- Default color effect setting. -->
+ <string name="pref_camera_coloreffect_default" translatable="false">none</string>
+
+ <!-- Settings screen, Select Color effect title -->
+ <string name="pref_camera_coloreffect_title">Color effect</string>
+
+ <!-- Settings screen, Color effect dialog radio button choices -->
+ <string name="pref_camera_coloreffect_entry_none">None</string>
+ <string name="pref_camera_coloreffect_entry_mono">Mono</string>
+ <string name="pref_camera_coloreffect_entry_sepia">Sepia</string>
+ <string name="pref_camera_coloreffect_entry_negative">Negative</string>
+ <!-- Color effect that overexposes and reverses some of the tones. -->
+ <string name="pref_camera_coloreffect_entry_solarize">Solarize</string>
+ <string name="pref_camera_coloreffect_entry_posterize">Posterize</string>
+ <string name="pref_camera_coloreffect_entry_aqua">Aqua</string>
+ <string name="pref_camera_coloreffect_entry_emboss">Emboss</string>
+ <string name="pref_camera_coloreffect_entry_sketch">Sketch</string>
+ <string name="pref_camera_coloreffect_entry_neon">Neon</string>
+ <string name="pref_camera_coloreffect_entry_pastel">Pastel</string>
+ <string name="pref_camera_coloreffect_entry_mosaic">Mosaic</string>
+ <string name="pref_camera_coloreffect_entry_redtint">Red tint</string>
+ <string name="pref_camera_coloreffect_entry_bluetint">Blue tint</string>
+ <string name="pref_camera_coloreffect_entry_greentint">Green tint</string>
+
+ <!-- Default Touch AF/AEC setting. Do not translate. -->
+ <string name="pref_camera_touchafaec_default">touch-on</string>
+
+ <!-- Settings screen, Select Touch AF/AEC title -->
+ <string name="pref_camera_touchafaec_title">Touch AF/AEC</string>
+
+ <!-- Settings screen, Touch AF/AEC dialog radio button choices -->
+ <string name="pref_camera_touchafaec_entry_off">Off</string>
+ <string name="pref_camera_touchafaec_entry_on">On</string>
+
+ <!-- Select DIS title -->
+ <string name="pref_camera_dis_title">DIS</string>
+ <string name="pref_camera_dis_default">disable</string>
+
+ <!-- DIS choices -->
+ <string name="pref_camera_dis_entry_off">Off</string>
+ <string name="pref_camera_dis_entry_on">On</string>
+
+ <!-- Select Face Recognition title -->
+ <string name="pref_camera_facerc_title">Face Recognition</string>
+
+ <string name="pref_camera_facerc_default">off</string>
+
+ <!-- Face Recognition choices -->
+ <string name="pref_camera_facerc_entry_off">Off</string>
+ <string name="pref_camera_facerc_entry_on">On</string>
+
+ <!-- Settings screen, Multiple levels entries -->
+ <string name="pref_camera_sharpness_entry_level0">Level 0</string>
+ <string name="pref_camera_sharpness_entry_level1">Level 1</string>
+ <string name="pref_camera_sharpness_entry_level2">Level 2(Default)</string>
+ <string name="pref_camera_sharpness_entry_level3">Level 3</string>
+ <string name="pref_camera_sharpness_entry_level4">Level 4</string>
+ <string name="pref_camera_sharpness_entry_level5">Level 5</string>
+ <string name="pref_camera_sharpness_entry_level6">Level 6</string>
+
+ <!-- Settings screen, Multiple levels entries -->
+ <string name="pref_camera_contrast_entry_level0">Level 0</string>
+ <string name="pref_camera_contrast_entry_level1">Level 1</string>
+ <string name="pref_camera_contrast_entry_level2">Level 2</string>
+ <string name="pref_camera_contrast_entry_level3">Level 3</string>
+ <string name="pref_camera_contrast_entry_level4">Level 4</string>
+ <string name="pref_camera_contrast_entry_level5">Level 5(Default)</string>
+ <string name="pref_camera_contrast_entry_level6">Level 6</string>
+ <string name="pref_camera_contrast_entry_level7">Level 7</string>
+ <string name="pref_camera_contrast_entry_level8">Level 8</string>
+ <string name="pref_camera_contrast_entry_level9">Level 9</string>
+ <string name="pref_camera_contrast_entry_level10">Level 10</string>
+
+ <!-- Settings screen, Multiple levels entries -->
+ <string name="pref_camera_saturation_entry_level0">Level 0</string>
+ <string name="pref_camera_saturation_entry_level1">Level 1</string>
+ <string name="pref_camera_saturation_entry_level2">Level 2</string>
+ <string name="pref_camera_saturation_entry_level3">Level 3</string>
+ <string name="pref_camera_saturation_entry_level4">Level 4</string>
+ <string name="pref_camera_saturation_entry_level5">Level 5(Default)</string>
+ <string name="pref_camera_saturation_entry_level6">Level 6</string>
+ <string name="pref_camera_saturation_entry_level7">Level 7</string>
+ <string name="pref_camera_saturation_entry_level8">Level 8</string>
+ <string name="pref_camera_saturation_entry_level9">Level 9</string>
+ <string name="pref_camera_saturation_entry_level10">Level 10</string>
+
+ <!-- Default sharpness setting. Do not translate. -->
+ <string name="pref_camera_sharpness_default">2</string>
+
+ <!-- Settings screen, Select sharpness title -->
+ <string name="pref_camera_sharpness_title">Sharpness</string>
+
+ <!-- Default contrast setting. Do not translate. -->
+ <string name="pref_camera_contrast_default">5</string>
+
+ <!-- Settings screen, Select contrast title -->
+ <string name="pref_camera_contrast_title">Contrast</string>
+
+ <!-- Default saturation setting. Do not translate. -->
+ <string name="pref_camera_saturation_default">5</string>
+
+ <!-- Settings screen, Select saturation title -->
+ <string name="pref_camera_saturation_title">Saturation</string>
+
+ <!-- Default picture quality setting. See
+ pref_camera_jpegquality_entryvalues for possible values -->
+ <string name="pref_camera_jpegquality_default" translatable="false">superfine</string>
+
+ <!-- Default Picture format setting. Do not translate. -->
+ <string name="pref_camera_picture_format_default">jpeg</string>
+
+ <!-- Settings screen, Select Picture format title -->
+ <string name="pref_camera_picture_format_title">Select Picture Format</string>
+
+ <!-- Settings screen, picture format dialog radio button choices -->
+ <string name="pref_camera_picture_format_entry_jpeg">Jpeg</string>
+ <string name="pref_camera_picture_format_entry_raw">Raw</string>
+ <string name="pref_camera_picture_format_entry_raw_yuv_422_sp">YUV422SP</string>
+ <string name="pref_camera_picture_format_entry_raw_yuv_8bit_yuyv">YUVRaw8YUYV</string>
+ <string name="pref_camera_picture_format_entry_raw_yuv_8bit_yvyu">YUVRaw8YVYU</string>
+ <string name="pref_camera_picture_format_entry_raw_yuv_8bit_uyvy">YUVRaw8UYVY</string>
+ <string name="pref_camera_picture_format_entry_raw_yuv_8bit_vyuy">YUVRaw8VYUY</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_8gbrg">BayerQ8GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_8grbg">BayerQ8GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_8rggb">BayerQ8RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_8bggr">BayerQ8BGRR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_10gbrg">BayerQ10GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_10grbg">BayerQ10GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_10rggb">BayerQ10RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_10bggr">BayerQ10BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_12gbrg">BayerQ12GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_12grbg">BayerQ12GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_12rggb">BayerQ12RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_qcom_12bggr">BayerQ12BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_8gbrg">BayerM8GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_8grbg">BayerM8GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_8rggb">BayerM8RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_8bggr">BayerM8BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_10gbrg">BayerM10GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_10grbg">BayerM10GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_10rggb">BayerM10RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_10bggr">BayerM10BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_12gbrg">BayerM12GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_12grbg">BayerM12GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_12rggb">BayerM12RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_mipi_12bggr">BayerM12BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8gbrg">BayerIQ8GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8grbg">BayerIQ8GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8rggb">BayerIQ8RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_8bggr">BayerIQ8BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10gbrg">BayerIQ10GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10grbg">BayerIQ10GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10rggb">BayerIQ10RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_10bggr">BayerIQ10BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12gbrg">BayerIQ12GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12grbg">BayerIQ12GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12rggb">BayerIQ12RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_qcom_12bggr">BayerIQ12BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8gbrg">BayerIM8GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8grbg">BayerIM8GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8rggb">BayerIM8RGGB</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_8bggr">BayerIM8BGGR</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10gbrg">BayerIM10GBRG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10grbg">BayerIM10GRBG</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10rggb">BayerIM10rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_10bggr">BayerIM8bggr</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12gbrg">BayerIM12gbrg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12grbg">BayerIM12grbg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12rggb">BayerIM12rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_mipi_12bggr">BayerIM12bggr</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8gbrg">BayerIP88gbrg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8grbg">BayerIP88grbg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8rggb">BayerIP88rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain8_8bggr">BayerIP88bggr</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8gbrg">BayerIP168gbrg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8grbg">BayerIP168grbg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8rggb">BayerIP168rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_8bggr">BayerIP168bggr</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10gbrg">BayerIP1610gbrg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10grbg">BayerIP1610grbg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10rggb">BayerIP1610rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_10bggr">BayerIP1610bggr</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12gbrg">BayerIP1612gbrg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12grbg">BayerIP1612grbg</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12rggb">BayerIP1612rggb</string>
+ <string name="pref_camera_picture_format_entry_raw_bayer_ideal_plain16_12bggr">BayerIP1612bggr</string>
+
+ <!-- Picture format entry values. Do not translate. -->
+ <string name="pref_camera_picture_format_value_jpeg">jpeg</string>
+ <string name="pref_camera_picture_format_value_raw">raw</string>
+ <string name="pref_camera_picture_format_value_raw_yuv_422_sp">yuv422sp</string>
+ <string name="pref_camera_picture_format_value_raw_yuv_8bit_yuyv">yuv-raw8-yuyv</string>
+ <string name="pref_camera_picture_format_value_raw_yuv_8bit_yvyu">yuv-raw8-yvyu</string>
+ <string name="pref_camera_picture_format_value_raw_yuv_8bit_uyvy">yuv-raw8-uyvy</string>
+ <string name="pref_camera_picture_format_value_raw_yuv_8bit_vyuy">yuv-raw8-vyuy</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_8gbrg">bayer-qcom-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_8grbg">bayer-qcom-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_8rggb">bayer-qcom-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_8bggr">bayer-qcom-8bgrr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_10gbrg">bayer-qcom-10gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_10grbg">bayer-qcom-10grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_10rggb">bayer-qcom-10rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_10bggr">bayer-qcom-10bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_12gbrg">bayer-qcom-12gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_12grbg">bayer-qcom-12grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_12rggb">bayer-qcom-12rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_qcom_12bggr">bayer-qcom-12bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_8gbrg">bayer-mipi-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_8grbg">bayer-mipi-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_8rggb">bayer-mipi-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_8bggr">bayer-mipi-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_10gbrg">bayer-mipi-10gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_10grbg">bayer-mipi-10grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_10rggb">bayer-mipi-10rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_10bggr">bayer-mipi-10bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_12gbrg">bayer-mipi-12gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_12grbg">bayer-mipi-12grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_12rggb">bayer-mipi-12rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_mipi_12bggr">bayer-mipi-12bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_8gbrg">bayer-ideal-qcom-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_8grbg">bayer-ideal-qcom-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_8rggb">bayer-ideal-qcom-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_8bggr">bayer-ideal-qcom-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_10gbrg">bayer-ideal-qcom-10gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_10grbg">bayer-ideal-qcom-10grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_10rggb">bayer-ideal-qcom-10rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_10bggr">bayer-ideal-qcom-10bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_12gbrg">bayer-ideal-qcom-12gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_12grbg">bayer-ideal-qcom-12grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_12rggb">bayer-ideal-qcom-12rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_qcom_12bggr">bayer-ideal-qcom-12bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_8gbrg">bayer-ideal-mipi-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_8grbg">bayer-ideal-mipi-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_8rggb">bayer-ideal-mipi-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_8bggr">bayer-ideal-mipi-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_10gbrg">bayer-ideal-mipi-10gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_10grbg">bayer-ideal-mipi-10grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_10rggb">bayer-ideal-mipi-10rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_10bggr">bayer-ideal-mipi-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_12gbrg">bayer-ideal-mipi-12gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_12grbg">bayer-ideal-mipi-12grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_12rggb">bayer-ideal-mipi-12rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_mipi_12bggr">bayer-ideal-mipi-12bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain8_8gbrg">bayer-ideal-plain8-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain8_8grbg">bayer-ideal-plain8-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain8_8rggb">bayer-ideal-plain8-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain8_8bggr">bayer-ideal-plain8-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_8gbrg">bayer-ideal-plain16-8gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_8grbg">bayer-ideal-plain16-8grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_8rggb">bayer-ideal-plain16-8rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_8bggr">bayer-ideal-plain16-8bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_10gbrg">bayer-ideal-plain16-10gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_10grbg">bayer-ideal-plain16-10grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_10rggb">bayer-ideal-plain16-10rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_10bggr">bayer-ideal-plain16-10bggr</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_12gbrg">bayer-ideal-plain16-12gbrg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_12grbg">bayer-ideal-plain16-12grbg</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_12rggb">bayer-ideal-plain16-12rggb</string>
+ <string name="pref_camera_picture_format_value_raw_bayer_ideal_plain16_12bggr">bayer-ideal-plain16-12bggr</string>
+ <!-- Settings screen, Picture quality title -->
+ <string name="pref_camera_jpegquality_title">Picture quality</string>
+
+ <!-- Settings screen, Picture quality dialog radio button choices -->
+ <string name="pref_camera_jpegquality_entry_superfine">Super fine</string>
+ <string name="pref_camera_jpegquality_entry_fine">Fine</string>
+ <string name="pref_camera_jpegquality_entry_normal">Normal</string>
+ <string name="pref_camera_jpegquality_entry_0">Jpeg 55%</string>
+ <string name="pref_camera_jpegquality_entry_1">Jpeg 65%</string>
+ <string name="pref_camera_jpegquality_entry_2">Jpeg 75%</string>
+ <string name="pref_camera_jpegquality_entry_3">Jpeg 85%</string>
+ <string name="pref_camera_jpegquality_entry_4">Jpeg 95%</string>
+ <string name="pref_camera_jpegquality_entry_5">Jpeg 100%</string>
+
+ <!-- Default auto histogram setting. Do not translate. -->
+ <string name="pref_camera_histogram_default">disable</string>
+
+ <!-- Settings screen, Select Histogram title -->
+ <string name="pref_camera_histogram_title">Histogram</string>
+
+ <!-- Settings screen, Histogram radio button choices -->
+ <string name="pref_camera_histogram_entry_enable">Enable</string>
+ <string name="pref_camera_histogram_entry_disable">Disable</string>
+
+ <!-- Histogram entry values. Do not translate. -->
+ <string name="pref_camera_histogram_value_enable">enable</string>
+ <string name="pref_camera_histogram_value_disable">disable</string>
+
+ <string name="pref_camera_picturesize_entry_1920x1080">HD1080</string>
+ <string name="pref_camera_picturesize_entry_1280x768">WXGA</string>
+ <string name="pref_camera_picturesize_entry_1280x720">HD720</string>
+ <string name="pref_camera_picturesize_entry_800x600">SVGA</string>
+ <string name="pref_camera_picturesize_entry_800x480">WVGA</string>
+ <string name="pref_camera_picturesize_entry_352x288">CIF</string>
+ <string name="pref_camera_picturesize_entry_176x144">QCIF</string>
+
+ <string name="pref_camera_focusmode_entry_normal">Normal</string>
+ <string name="pref_camera_focusmode_entry_continuous">CAF</string>
+
+ <string name="pref_camera_scenemode_entry_asd">ASD</string>
+ <!-- Scene mode that takes an image with as little noise as possible so details of the subject are maintained. -->
+ <string name="pref_camera_scenemode_entry_portrait">Portrait</string>
+ <!-- Scene mode that takes an image of a landscape assuming all subjects are relatively far from the phone. -->
+ <string name="pref_camera_scenemode_entry_landscape">Landscape</string>
+
+ <!-- Scene mode that takes night shots with long exposure and flash to illuminate the subject while still capturing darker detail in the background. -->
+ <string name="pref_camera_scenemode_entry_night_portrait">Night Portrait</string>
+ <!-- Scene mode to be used in a stage show. -->
+ <string name="pref_camera_scenemode_entry_theatre">Theatre</string>
+ <!-- Scene mode optimized for taking images on the beach. -->
+ <string name="pref_camera_scenemode_entry_beach">Beach</string>
+ <!-- Scene mode optimized for taking images in the snow. -->
+ <string name="pref_camera_scenemode_entry_snow">Snow</string>
+
+ <!-- Scene mode for taking a photo as sharp as possible. -->
+ <string name="pref_camera_scenemode_entry_steadyphoto">Steady Photo</string>
+ <!-- Scene mode optimized for taking images of fireworks. -->
+ <string name="pref_camera_scenemode_entry_fireworks">Fireworks</string>
+ <!-- Scene mode optimized for taking images during sports . -->
+ <string name="pref_camera_scenemode_entry_sports">Sports</string>
+ <!-- Scene mode optimized for capturing the naturally warm color of scenes lit by candles. [CHAR LIMIT=16] -->
+ <string name="pref_camera_scenemode_entry_candlelight">Candlelight</string>
+ <!-- Scene mode for taking a photo with backlight. -->
+ <string name="pref_camera_scenemode_entry_backlight">Backlight</string>
+ <!-- Scene mode optimized for taking images of flowers. -->
+ <string name="pref_camera_scenemode_entry_flowers">Flowers</string>
+ <!-- Scene mode optimized for taking images of AR. -->
+ <string name="pref_camera_scenemode_entry_ar">AR</string>
+
+ <!-- Default auto scene detection setting. -->
+ <string name="pref_camera_scenedetect_default" translatable="false">off</string>
+
+ <!-- Settings screen, Select Auto Scene Detection -->
+ <string name="pref_camera_scenedetect_title">Auto Scene Detection</string>
+
+ <!-- Settings menu, auto scene detection choices -->
+ <string name="pref_camera_scenedetect_entry_off">Off</string>
+ <!-- Scene detection set to on - supports backlight and snow cloudy detection. -->
+ <string name="pref_camera_scenedetect_entry_on">On</string>
+
+ <!-- Toast showing error if invalid size selected for time lapse [CHAR LIMIT=65] -->
+ <string name="time_lapse_error">Invalid video-size for time-lapse recording.</string>
+
+ <string name="pref_camera_videosnapsize_default" translatable="false">1920x1080</string>
+</resources>
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 352fab5d4..04b765879 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -228,18 +228,14 @@
<!-- The Video quality settings in preference [CHAR LIMIT=21] -->
<string name="pref_video_quality_title">Video quality</string>
- <!-- The default quality value is 5 (720p) -->
- <string name="pref_video_quality_default" translatable="false">5</string>
+ <!-- The default quality value is 3 (CIF) -->
+ <string name="pref_video_quality_default" translatable="false">3</string>
<!-- Video quality setting entry. Videos will be recorded in 1080p quality. [CHAR LIMIT=24] -->
<string name="pref_video_quality_entry_1080p" translatable="false">HD 1080p</string>
<!-- Video quality setting entry. Videos will be recorded in 720p quality. [CHAR LIMIT=24] -->
<string name="pref_video_quality_entry_720p" translatable="false">HD 720p</string>
<!-- Video quality setting entry. Videos will be recorded in 480p quality. [CHAR LIMIT=24] -->
<string name="pref_video_quality_entry_480p" translatable="false">SD 480p</string>
- <!-- Video quality setting entry. Videos will be recorded in the highest quality available on the device. [CHAR LIMIT=24] -->
- <string name="pref_video_quality_entry_high">High</string>
- <!-- Video quality setting entry. Videos will be recorded in the lowest quality available on the device. [CHAR LIMIT=24] -->
- <string name="pref_video_quality_entry_low">Low</string>
<!-- Describes the preference dialog for choosing interval between frame capture for
time lapse recording. Appears at top of the dialog. [CHAR LIMIT=30] -->
@@ -257,6 +253,8 @@
<!-- Settings screen, dialog choice for 13 megapixels picture size [CHAR LIMIT=20] -->
<string name="pref_camera_picturesize_entry_13mp">13M pixels</string>
+ <!-- Settings screen, dialog choice for 12 megapixels picture size [CHAR LIMIT=20] -->
+ <string name="pref_camera_picturesize_entry_12mp">12M pixels</string>
<!-- Settings screen, dialog choice for 8 megapixels picture size [CHAR LIMIT=20] -->
<string name="pref_camera_picturesize_entry_8mp">8M pixels</string>
<!-- Settings screen, dialog choice for 5 megapixels picture size [CHAR LIMIT=20] -->
diff --git a/res/xml/video_preferences.xml b/res/xml/video_preferences.xml
index ce36219f8..08dbc0039 100644
--- a/res/xml/video_preferences.xml
+++ b/res/xml/video_preferences.xml
@@ -19,9 +19,28 @@
camera:title="@string/pref_camcorder_settings_category">
<ListPreference
camera:key="pref_video_quality_key"
+ camera:defaultValue="@string/pref_video_quality_default"
camera:title="@string/pref_video_quality_title"
camera:entries="@array/pref_video_quality_entries"
camera:entryValues="@array/pref_video_quality_entryvalues"/>
+ <ListPreference
+ camera:key="pref_camera_videoencoder_key"
+ camera:defaultValue="@string/pref_camera_videoencoder_default"
+ camera:title="@string/pref_camera_videoencoder_title"
+ camera:entries="@array/pref_camera_videoencoder_entries"
+ camera:entryValues="@array/pref_camera_videoencoder_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_audioencoder_key"
+ camera:defaultValue="@string/pref_camera_audioencoder_default"
+ camera:title="@string/pref_camera_audioencoder_title"
+ camera:entries="@array/pref_camera_audioencoder_entries"
+ camera:entryValues="@array/pref_camera_audioencoder_entryvalues" />
+ <ListPreference
+ camera:key="pref_camera_video_duration_key"
+ camera:defaultValue="@string/pref_camera_video_duration_default"
+ camera:title="@string/pref_camera_video_duration_title"
+ camera:entries="@array/pref_camera_video_duration_entries"
+ camera:entryValues="@array/pref_camera_video_duration_entryvalues" />
<IconListPreference
camera:key="pref_video_time_lapse_frame_interval_key"
camera:defaultValue="@string/pref_video_time_lapse_frame_interval_default"
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 55867a1e8..38dcc6965 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -16,12 +16,14 @@
package com.android.camera;
+import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import android.content.res.TypedArray;
+import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.Size;
@@ -36,6 +38,7 @@ import com.android.camera2.R;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import android.os.Build;
/**
* Provides utilities and keys for Camera settings.
@@ -67,6 +70,9 @@ public class CameraSettings {
public static final String KEY_PHOTOSPHERE_PICTURESIZE = "pref_photosphere_picturesize_key";
public static final String KEY_STARTUP_MODULE_INDEX = "camera.startup_module";
+ public static final String KEY_VIDEO_ENCODER = "pref_camera_videoencoder_key";
+ public static final String KEY_AUDIO_ENCODER = "pref_camera_audioencoder_key";
+ public static final String KEY_VIDEO_DURATION = "pref_camera_video_duration_key";
public static final String EXPOSURE_DEFAULT_VALUE = "0";
public static final int CURRENT_VERSION = 5;
@@ -96,10 +102,10 @@ public class CameraSettings {
}
public static String getSupportedHighestVideoQuality(int cameraId,
- String defaultQuality) {
+ String defaultQuality,Parameters parameters) {
// When launching the camera app first time, we will set the video quality
// to the first one (i.e. highest quality) in the supported list
- List<String> supported = getSupportedVideoQuality(cameraId);
+ List<String> supported = getSupportedVideoQuality(cameraId,parameters);
if (supported == null) {
Log.e(TAG, "No supported video quality is found");
return defaultQuality;
@@ -177,7 +183,8 @@ public class CameraSettings {
// Since the screen could be loaded from different resources, we need
// to check if the preference is available here
if (videoQuality != null) {
- filterUnsupportedOptions(group, videoQuality, getSupportedVideoQuality(mCameraId));
+ filterUnsupportedOptions(group, videoQuality, getSupportedVideoQuality(
+ mCameraId,mParameters));
}
if (pictureSize != null) {
@@ -484,19 +491,96 @@ public class CameraSettings {
initialCameraPictureSize(context, parameters);
writePreferredCameraId(preferences, currentCameraId);
}
+ private static boolean checkSupportedVideoQuality(Parameters parameters,int width, int height){
+ List <Size> supported = parameters.getSupportedVideoSizes();
+ int flag = 0;
+ for (Size size : supported){
+ //since we are having two profiles with same height, we are checking with height
+ if (size.height == 480) {
+ if (size.height == height && size.width == width) {
+ flag = 1;
+ break;
+ }
+ } else {
+ if (size.width == width) {
+ flag = 1;
+ break;
+ }
+ }
+ }
+ if (flag == 1)
+ return true;
- private static ArrayList<String> getSupportedVideoQuality(int cameraId) {
+ return false;
+ }
+ private static ArrayList<String> getSupportedVideoQuality(int cameraId,Parameters parameters) {
ArrayList<String> supported = new ArrayList<String>();
// Check for supported quality
+ if (ApiHelper.HAS_FINE_RESOLUTION_QUALITY_LEVELS) {
+ getFineResolutionQuality(supported,cameraId,parameters);
+ } else {
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_HIGH));
+ CamcorderProfile high = CamcorderProfile.get(
+ cameraId, CamcorderProfile.QUALITY_HIGH);
+ CamcorderProfile low = CamcorderProfile.get(
+ cameraId, CamcorderProfile.QUALITY_LOW);
+ if (high.videoFrameHeight * high.videoFrameWidth >
+ low.videoFrameHeight * low.videoFrameWidth) {
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_LOW));
+ }
+ }
+
+ return supported;
+ }
+
+ @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+ private static void getFineResolutionQuality(ArrayList<String> supported,
+ int cameraId,Parameters parameters) {
if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_1080P)) {
- supported.add(Integer.toString(CamcorderProfile.QUALITY_1080P));
+ if (checkSupportedVideoQuality(parameters,1920,1080)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_1080P));
+ }
}
if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_720P)) {
- supported.add(Integer.toString(CamcorderProfile.QUALITY_720P));
+ if (checkSupportedVideoQuality(parameters,1280,720)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_720P));
+ }
}
if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_480P)) {
- supported.add(Integer.toString(CamcorderProfile.QUALITY_480P));
+ if (checkSupportedVideoQuality(parameters,720,480)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_480P));
+ }
}
- return supported;
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_FWVGA)) {
+ if (checkSupportedVideoQuality(parameters,864,480)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_FWVGA));
+ }
+ }
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_WVGA)) {
+ if (checkSupportedVideoQuality(parameters,800,480)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_WVGA));
+ }
+ }
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_VGA)) {
+ if (checkSupportedVideoQuality(parameters,640,480)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_VGA));
+ }
+ }
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_CIF)) {
+ if (checkSupportedVideoQuality(parameters,352,288)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_CIF));
+ }
+ }
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_QVGA)) {
+ if (checkSupportedVideoQuality(parameters,320,240)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_QVGA));
+ }
+ }
+ if (CamcorderProfile.hasProfile(cameraId, CamcorderProfile.QUALITY_QCIF)) {
+ if (checkSupportedVideoQuality(parameters,176,144)){
+ supported.add(Integer.toString(CamcorderProfile.QUALITY_QCIF));
+ }
+ }
+
}
}
diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java
index f0c7db272..8db219924 100644
--- a/src/com/android/camera/VideoMenu.java
+++ b/src/com/android/camera/VideoMenu.java
@@ -67,6 +67,9 @@ public class VideoMenu extends PieController
CameraSettings.KEY_VIDEO_EFFECT,
CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL,
CameraSettings.KEY_VIDEO_QUALITY,
+ CameraSettings.KEY_VIDEO_ENCODER,
+ CameraSettings.KEY_AUDIO_ENCODER,
+ CameraSettings.KEY_VIDEO_DURATION,
CameraSettings.KEY_RECORD_LOCATION
};
item = makeItem(R.drawable.ic_settings_holo_light);
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index fdd48e264..74fd4aff9 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -70,6 +70,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.HashMap;
public class VideoModule implements CameraModule,
VideoController,
@@ -216,6 +217,72 @@ public class VideoModule implements CameraModule,
mParameters = mCameraDevice.getParameters();
}
+ //QCOM data Members Starts here
+ static class DefaultHashMap<K, V> extends HashMap<K, V> {
+ private V mDefaultValue;
+
+ public void putDefault(V defaultValue) {
+ mDefaultValue = defaultValue;
+ }
+
+ @Override
+ public V get(Object key) {
+ V value = super.get(key);
+ return (value == null) ? mDefaultValue : value;
+ }
+ public K getKey(V toCheck) {
+ Iterator<K> it = this.keySet().iterator();
+ V val;
+ K key;
+ while(it.hasNext()) {
+ key = it.next();
+ val = this.get(key);
+ if (val.equals(toCheck)) {
+ return key;
+ }
+ }
+ return null;
+ }
+ }
+
+
+ private static final DefaultHashMap<String, Integer>
+ OUTPUT_FORMAT_TABLE = new DefaultHashMap<String, Integer>();
+ private static final DefaultHashMap<String, Integer>
+ VIDEO_ENCODER_TABLE = new DefaultHashMap<String, Integer>();
+ private static final DefaultHashMap<String, Integer>
+ AUDIO_ENCODER_TABLE = new DefaultHashMap<String, Integer>();
+ private static final DefaultHashMap<String, Integer>
+ VIDEOQUALITY_BITRATE_TABLE = new DefaultHashMap<String, Integer>();
+
+ static {
+ OUTPUT_FORMAT_TABLE.put("3gp", MediaRecorder.OutputFormat.THREE_GPP);
+ OUTPUT_FORMAT_TABLE.put("mp4", MediaRecorder.OutputFormat.MPEG_4);
+ OUTPUT_FORMAT_TABLE.putDefault(MediaRecorder.OutputFormat.DEFAULT);
+
+ VIDEO_ENCODER_TABLE.put("h263", MediaRecorder.VideoEncoder.H263);
+ VIDEO_ENCODER_TABLE.put("h264", MediaRecorder.VideoEncoder.H264);
+ VIDEO_ENCODER_TABLE.put("m4v", MediaRecorder.VideoEncoder.MPEG_4_SP);
+ VIDEO_ENCODER_TABLE.putDefault(MediaRecorder.VideoEncoder.DEFAULT);
+
+ AUDIO_ENCODER_TABLE.put("amrnb", MediaRecorder.AudioEncoder.AMR_NB);
+ // Enabled once support is added in MediaRecorder.
+ // AUDIO_ENCODER_TABLE.put("qcelp", MediaRecorder.AudioEncoder.QCELP);
+ // AUDIO_ENCODER_TABLE.put("evrc", MediaRecorder.AudioEncoder.EVRC);
+ AUDIO_ENCODER_TABLE.put("amrwb", MediaRecorder.AudioEncoder.AMR_WB);
+ AUDIO_ENCODER_TABLE.put("aac", MediaRecorder.AudioEncoder.AAC);
+ AUDIO_ENCODER_TABLE.putDefault(MediaRecorder.AudioEncoder.DEFAULT);
+
+ }
+
+ private int mVideoEncoder;
+ private int mAudioEncoder;
+ private boolean mRestartPreview = false;
+ private int videoWidth;
+ private int videoHeight;
+ boolean mUnsupportedResolution = false;
+
+
// This Handler is used to post message back onto the main thread of the
// application
private class MainHandler extends Handler {
@@ -547,15 +614,53 @@ public class VideoModule implements CameraModule,
mUI.setShutterPressed(pressed);
}
+ private void qcomReadVideoPreferences() {
+ String videoEncoder = mPreferences.getString(
+ CameraSettings.KEY_VIDEO_ENCODER,
+ mActivity.getString(R.string.pref_camera_videoencoder_default));
+ mVideoEncoder = VIDEO_ENCODER_TABLE.get(videoEncoder);
+
+ Log.v(TAG, "Video Encoder selected = " +mVideoEncoder);
+
+ String audioEncoder = mPreferences.getString(
+ CameraSettings.KEY_AUDIO_ENCODER,
+ mActivity.getString(R.string.pref_camera_audioencoder_default));
+ mAudioEncoder = AUDIO_ENCODER_TABLE.get(audioEncoder);
+
+ Log.v(TAG, "Audio Encoder selected = " +mAudioEncoder);
+
+ String minutesStr = mPreferences.getString(
+ CameraSettings.KEY_VIDEO_DURATION,
+ mActivity.getString(R.string.pref_camera_video_duration_default));
+ int minutes = -1;
+ try {
+ minutes = Integer.parseInt(minutesStr);
+ } catch(NumberFormatException npe) {
+ // use default value continue
+ minutes = Integer.parseInt(mActivity.getString(
+ R.string.pref_camera_video_duration_default));
+ }
+ if (minutes == -1) {
+ // User wants lowest, set 30s */
+ mMaxVideoDurationInMs = 30000;
+ } else {
+ // 1 minute = 60000ms
+ mMaxVideoDurationInMs = 60000 * minutes;
+ }
+
+ }
+
private void readVideoPreferences() {
// The preference stores values from ListPreference and is thus string type for all values.
// We need to convert it to int manually.
String videoQuality = mPreferences.getString(CameraSettings.KEY_VIDEO_QUALITY,
null);
if (videoQuality == null) {
+ mParameters = mCameraDevice.getParameters();
// check for highest quality before setting default value
videoQuality = CameraSettings.getSupportedHighestVideoQuality(mCameraId,
- mActivity.getResources().getString(R.string.pref_video_quality_default));
+ mActivity.getResources().getString(R.string.pref_video_quality_default),
+ mParameters);
mPreferences.edit().putString(CameraSettings.KEY_VIDEO_QUALITY, videoQuality);
}
int quality = Integer.valueOf(videoQuality);
@@ -592,6 +697,7 @@ public class VideoModule implements CameraModule,
if (mCaptureTimeLapse) quality += 1000;
mProfile = CamcorderProfile.get(mCameraId, quality);
getDesiredPreviewSize();
+ qcomReadVideoPreferences();
mPreferenceRead = true;
}
@@ -945,6 +1051,19 @@ public class VideoModule implements CameraModule,
Intent intent = mActivity.getIntent();
Bundle myExtras = intent.getExtras();
+ videoWidth = mProfile.videoFrameWidth;
+ videoHeight = mProfile.videoFrameHeight;
+ mUnsupportedResolution = false;
+
+ if (mVideoEncoder == MediaRecorder.VideoEncoder.H263) {
+ if (videoWidth >= 1280 && videoHeight >= 720) {
+ mUnsupportedResolution = true;
+ Toast.makeText(mActivity, R.string.error_app_unsupported,
+ Toast.LENGTH_LONG).show();
+ return;
+ }
+ }
+
long requestedSizeLimit = 0;
closeVideoFileDescriptor();
mCurrentVideoUriFromMediaSaved = false;
@@ -970,8 +1089,13 @@ public class VideoModule implements CameraModule,
mMediaRecorder.setCamera(mCameraDevice.getCamera());
if (!mCaptureTimeLapse) {
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
+ mProfile.audioCodec = mAudioEncoder;
}
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
+
+ mProfile.videoCodec = mVideoEncoder;
+ mProfile.duration = mMaxVideoDurationInMs;
+
mMediaRecorder.setProfile(mProfile);
mMediaRecorder.setMaxDuration(mMaxVideoDurationInMs);
if (mCaptureTimeLapse) {
@@ -1183,6 +1307,10 @@ public class VideoModule implements CameraModule,
mCurrentVideoUri = null;
initializeRecorder();
+ if (mUnsupportedResolution == true) {
+ Log.v(TAG, "Unsupported Resolution according to target");
+ return;
+ }
if (mMediaRecorder == null) {
Log.e(TAG, "Fail to initialize media recorder");
return;
@@ -1472,7 +1600,11 @@ public class VideoModule implements CameraModule,
}
forceFlashOffIfSupported(!mUI.isVisible());
-
+ videoWidth = mProfile.videoFrameWidth;
+ videoHeight = mProfile.videoFrameHeight;
+ String recordSize = videoWidth + "x" + videoHeight;
+ Log.e(TAG,"Video dimension in App->"+recordSize);
+ mParameters.set("video-size", recordSize);
// Set white balance parameter.
String whiteBalance = mPreferences.getString(
CameraSettings.KEY_WHITE_BALANCE,
diff --git a/src/com/android/camera/util/ApiHelper.java b/src/com/android/camera/util/ApiHelper.java
index dd5208cc8..4a917799e 100644
--- a/src/com/android/camera/util/ApiHelper.java
+++ b/src/com/android/camera/util/ApiHelper.java
@@ -49,7 +49,8 @@ public class ApiHelper {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
public static final boolean HAS_ROTATION_ANIMATION =
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
-
+ public static final boolean HAS_FINE_RESOLUTION_QUALITY_LEVELS =
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
public static final boolean HAS_HIDEYBARS = isKitKatOrHigher();
public static int getIntFieldIfExists(Class<?> klass, String fieldName,