From c058e3fdfeda1c9836024ce135e567186bfeac35 Mon Sep 17 00:00:00 2001 From: xianming wang Date: Tue, 8 Oct 2019 16:11:11 +0800 Subject: SnapdragonCamera: Disable MPEG4 when enable EIS and less 720P Disable MPEG4 encoder when enable EIS and video quality less than 720P. CRs-Fixed: 2532891 Change-Id: I48c450c47b77500562aa53c31edbae5caf873a0b --- src/com/android/camera/SettingsActivity.java | 6 ++++++ src/com/android/camera/SettingsManager.java | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java index ae7b48293..3fef92493 100755 --- a/src/com/android/camera/SettingsActivity.java +++ b/src/com/android/camera/SettingsActivity.java @@ -159,6 +159,12 @@ public class SettingsActivity extends PreferenceActivity { if ( (pref.getKey().equals(SettingsManager.KEY_MANUAL_WB)) ) { updateManualWBSettings(); } + + if (pref.getKey().equals(SettingsManager.KEY_VIDEO_QUALITY) || + pref.getKey().equals(SettingsManager.KEY_DIS) || + pref.getKey().equals(SettingsManager.KEY_EIS_VALUE)) { + updatePreference(SettingsManager.KEY_VIDEO_ENCODER); + } } } }; diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 253108603..41e12af98 100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -1091,6 +1091,9 @@ public class SettingsManager implements ListMenu.SettingsListener { filterVideoEncoderProfileOptions(); } else if (pref.getKey().equals(KEY_PICTURE_FORMAT)) { filterHeifSizeOptions(); + } else if (pref.getKey().equals(KEY_DIS) || + pref.getKey().equals(KEY_EIS_VALUE)) { + filterVideoEncoderOptions(); } } @@ -1941,6 +1944,23 @@ public class SettingsManager implements ListMenu.SettingsListener { } } } + + ListPreference videoQuality = mPreferenceGroup.findPreference(KEY_VIDEO_QUALITY); + String videoSize = videoQuality.getValue(); + int indexX = videoSize.indexOf('x'); + int width = Integer.parseInt(videoSize.substring(0, indexX)); + int height = Integer.parseInt(videoSize.substring(indexX + 1)); + // Video quality less than 720P + boolean isLess720P = width < 1280 && height < 720; + + ListPreference disPref = mPreferenceGroup.findPreference(KEY_DIS); + ListPreference eisPref = mPreferenceGroup.findPreference(KEY_EIS_VALUE); + if (isLess720P && + "on".equals(disPref.getValue()) && + !("disable".equals(eisPref.getValue()))) { + supported.remove("mpeg-4-sp"); + } + return supported; } -- cgit v1.2.3 From d07c58ce282c3e6a27d07ecb07c9f66e21f6e1ad Mon Sep 17 00:00:00 2001 From: jiaoyuan Date: Wed, 9 Oct 2019 10:11:10 +0800 Subject: SnapdraongCamera: mms do not need high speed mms do not support high speed Change-Id: Id0ec90ef7ff1b09bd8045300fd58fe65133e127f --- src/com/android/camera/CaptureModule.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 8aa654b21..d4db0b771 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -5502,12 +5502,12 @@ public class CaptureModule implements CameraModule, PhotoController, if (mCaptureTimeLapse) { size = CameraSettings.getTimeLapseQualityFor(size); } - Bundle myExtras = intent.getExtras(); if (mMediaRecorder == null) mMediaRecorder = new MediaRecorder(); updateHFRSetting(); + mHighSpeedCapture = mHighSpeedCapture && (myExtras == null); //MMS not support high speed boolean hfr = mHighSpeedCapture && !mHighSpeedRecordingMode; if (CamcorderProfile.hasProfile(cameraId, size)) { @@ -5640,7 +5640,6 @@ public class CaptureModule implements CameraModule, PhotoController, if (requestedSizeLimit > 0 && requestedSizeLimit < maxFileSize) { maxFileSize = requestedSizeLimit; } - if (Storage.isSaveSDCard() && maxFileSize > SDCARD_SIZE_LIMIT) { maxFileSize = SDCARD_SIZE_LIMIT; } -- cgit v1.2.3 From 3394ac3cf62f5277ba5c0fe2066025154d0f8bf0 Mon Sep 17 00:00:00 2001 From: jiaoyuan Date: Thu, 10 Oct 2019 15:40:32 +0800 Subject: SnapdragonCamera: hide navigation bar hide navigation bar Change-Id: I98c081cc4feaa7a8434bf2325c30daef98ce15ea --- src/com/android/camera/CameraActivity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 9f225d1c7..2390afa8e 100755 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -641,7 +641,8 @@ public class CameraActivity extends Activity View decorView = getWindow().getDecorView(); int currentSystemUIVisibility = decorView.getSystemUiVisibility(); int systemUIVisibility = DEFAULT_SYSTEM_UI_VISIBILITY; - int systemUINotVisible = View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN; + int systemUINotVisible = View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; int newSystemUIVisibility = systemUIVisibility | (visible ? View.SYSTEM_UI_FLAG_VISIBLE : systemUINotVisible); -- cgit v1.2.3 From 416558c5d8a2a36d78788e9c6772c943b2ccdcbc Mon Sep 17 00:00:00 2001 From: junjiez Date: Wed, 11 Sep 2019 16:10:01 +0800 Subject: SnapdraongCamera:Filter HEIF size Filter unsupported HEIF size according to the capabilities of heic encoder to avoid codec error. Change-Id: If68f517f768d04c27f1bd52def4d8fb492b74842 CRs-Fixed: 2525250 --- src/com/android/camera/SettingsManager.java | 46 ++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 253108603..88fe2ec53 100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -1670,10 +1670,26 @@ public class SettingsManager implements ListMenu.SettingsListener { res.add(getSupportedQcfaDimension(cameraId)); } + VideoCapabilities heifCap = null; + if (isHeifEnabled) { + MediaCodecList list = new MediaCodecList(MediaCodecList.REGULAR_CODECS); + for (MediaCodecInfo info :list.getCodecInfos()) { + if (info.isEncoder() && info.getName().contains("heic")){ + heifCap = info.getCapabilitiesForType( + MediaFormat.MIMETYPE_IMAGE_ANDROID_HEIC).getVideoCapabilities(); + Log.d(TAG,"supported heif height range ="+heifCap.getSupportedHeights().toString() + + " width range ="+heifCap.getSupportedWidths().toString()); + } + } + } + if (sizes != null) { for (int i = 0; i < sizes.length; i++) { - if (isHeifEnabled && (Math.min(sizes[i].getWidth(),sizes[i].getHeight()) < 512)) { - continue; + if (isHeifEnabled && heifCap != null ){ + if (!heifCap.getSupportedWidths().contains(sizes[i].getWidth()) || + !heifCap.getSupportedHeights().contains(sizes[i].getHeight())){ + continue; + } } if (isDeepportrait && (Math.min(sizes[i].getWidth(),sizes[i].getHeight()) < 720 || @@ -1686,8 +1702,15 @@ public class SettingsManager implements ListMenu.SettingsListener { } Size[] highResSizes = map.getHighResolutionOutputSizes(ImageFormat.JPEG); + if (highResSizes != null) { for (int i = 0; i < highResSizes.length; i++) { + if (isHeifEnabled && heifCap != null) { + if (!heifCap.getSupportedWidths().contains(highResSizes[i].getWidth()) || + !heifCap.getSupportedHeights().contains(highResSizes[i].getHeight())){ + continue; + } + } res.add(highResSizes[i].toString()); } } @@ -1735,10 +1758,25 @@ public class SettingsManager implements ListMenu.SettingsListener { CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); Size[] sizes = map.getOutputSizes(MediaRecorder.class); boolean isHeifEnabled = getSavePictureFormat() == HEIF_FORMAT; + VideoCapabilities heifCap = null; + if (isHeifEnabled) { + MediaCodecList list = new MediaCodecList(MediaCodecList.REGULAR_CODECS); + for (MediaCodecInfo info :list.getCodecInfos()) { + if (info.isEncoder() && info.getName().contains("heic")){ + heifCap = info.getCapabilitiesForType( + MediaFormat.MIMETYPE_IMAGE_ANDROID_HEIC).getVideoCapabilities(); + Log.d(TAG,"supported heif height range ="+heifCap.getSupportedHeights().toString() + + " width range ="+heifCap.getSupportedWidths().toString()); + } + } + } List res = new ArrayList<>(); for (int i = 0; i < sizes.length; i++) { - if (isHeifEnabled && (Math.min(sizes[i].getWidth(),sizes[i].getHeight()) < 512)) { - continue; + if (isHeifEnabled && heifCap != null ){ + if (!heifCap.getSupportedWidths().contains(sizes[i].getWidth()) || + !heifCap.getSupportedHeights().contains(sizes[i].getHeight())){ + continue; + } } if (CameraSettings.VIDEO_QUALITY_TABLE.containsKey(sizes[i].toString())) { Integer profile = CameraSettings.VIDEO_QUALITY_TABLE.get(sizes[i].toString()); -- cgit v1.2.3 From 075c578609a0024cef6057d4776f55275f097d62 Mon Sep 17 00:00:00 2001 From: jiaoyuan Date: Thu, 17 Oct 2019 15:24:53 +0800 Subject: SnapdragonCamera: options button missing in promode reset options button height Change-Id: I607c236fb6f2452f0024151027ad4afa420f54e8 --- src/com/android/camera/ui/OneUICameraControls.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/android/camera/ui/OneUICameraControls.java b/src/com/android/camera/ui/OneUICameraControls.java index fb7f9d6fd..20b1fa67f 100755 --- a/src/com/android/camera/ui/OneUICameraControls.java +++ b/src/com/android/camera/ui/OneUICameraControls.java @@ -593,6 +593,7 @@ public class OneUICameraControls extends RotatableLayout { mProModeCloseButton.setVisibility(INVISIBLE); return; } + setProModeParameters(); mProModeLayout.setVisibility(VISIBLE); mProModeCloseButton.setVisibility(VISIBLE); mProModeLayout.setY(mHeight - mBottom - mProModeLayout.getHeight()); -- cgit v1.2.3 From 9f72ab6653f5bc833d1c8a7fea2c307c5623eda9 Mon Sep 17 00:00:00 2001 From: jinwu Date: Thu, 17 Oct 2019 16:09:21 +0800 Subject: Update version number to 2.02.034 Change-Id: If8b54dd0aee479d5cbd8184835393a22cfe969d2 --- version.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.mk b/version.mk index e64719dee..972bb3ef0 100755 --- a/version.mk +++ b/version.mk @@ -40,7 +40,7 @@ # base_version_build is 3 digits and auto-increment for fixing CR. base_version_major := 2 base_version_minor := 02 -base_version_build := 033 +base_version_build := 034 ##################################################### ##################################################### -- cgit v1.2.3 From 358b5c9fb67a69bfe823c3f24543090308bc445b Mon Sep 17 00:00:00 2001 From: jiaoyuan Date: Fri, 18 Oct 2019 10:02:55 +0800 Subject: SnapdragonCamera: Flash icon appears after countdown Flash icon appears after snapshot with countdown timer in ProMode Change-Id: I21101397b617e8afc433118400bb4b07ae061801 --- src/com/android/camera/ui/FlashToggleButton.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/com/android/camera/ui/FlashToggleButton.java diff --git a/src/com/android/camera/ui/FlashToggleButton.java b/src/com/android/camera/ui/FlashToggleButton.java old mode 100644 new mode 100755 index fa766bfb8..fca76b7a1 --- a/src/com/android/camera/ui/FlashToggleButton.java +++ b/src/com/android/camera/ui/FlashToggleButton.java @@ -71,8 +71,16 @@ public class FlashToggleButton extends RotateImageView { String userSetting = mContext.getString( R.string.pref_camera_manual_exp_value_user_setting); String manualExposureMode = mSettingsManager.getValue(SettingsManager.KEY_MANUAL_EXPOSURE); + String scene = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); + boolean promode = false; + if (scene != null) { + int mode = Integer.parseInt(scene); + if (mode == SettingsManager.SCENE_MODE_PROMODE_INT) { + promode = true; + } + } if (mIndex == -1 || (redeye != null && redeye.equals("on")) || - manualExposureMode.equals(userSetting)) { + manualExposureMode.equals(userSetting) || promode) { setVisibility(GONE); return; } else { -- cgit v1.2.3 From 91c1d6a62f06fded27d4f4489f627d1ea3a0709f Mon Sep 17 00:00:00 2001 From: junjiez Date: Tue, 29 Oct 2019 11:04:21 +0800 Subject: SnapdraongCamera:APP-ZSL size Need to get max supported size as APP-ZSL size, then crop into picture size to avoid FOV issue Change-Id: I298544d849af6ba4944826f8960e47331b4abe34 CRs-Fixed: 2545491 --- src/com/android/camera/SettingsManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 253108603..5293ac3b0 100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -1709,7 +1709,12 @@ public class SettingsManager implements ListMenu.SettingsListener { public Size[] getSupportedOutputSize(int cameraId, Class cl) { StreamConfigurationMap map = mCharacteristics.get(cameraId).get( CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); - return map.getOutputSizes(cl); + Size[] normal = map.getOutputSizes(cl); + Size[] high = map.getHighResolutionOutputSizes(ImageFormat.PRIVATE); + Size[] ret = new Size[normal.length+high.length]; + System.arraycopy(normal,0,ret,0,normal.length); + System.arraycopy(high,0,ret,normal.length,high.length); + return ret; } private List getSupportedVideoDuration() { -- cgit v1.2.3 From 5c0099676751ad4fdacc1b775751c712865959ee Mon Sep 17 00:00:00 2001 From: xianming wang Date: Wed, 30 Oct 2019 15:37:42 +0800 Subject: SnapdragonCamera: Correct the mBackCameraId and mFrontCameraId Correct the mBackCameraId and mFrontCameraId. Change-Id: I10904c601801c89b89f1fb21468d5c7a420bfb4a --- src/com/android/camera/CameraHolder.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/android/camera/CameraHolder.java b/src/com/android/camera/CameraHolder.java index d5167af5b..f7ee1af88 100755 --- a/src/com/android/camera/CameraHolder.java +++ b/src/com/android/camera/CameraHolder.java @@ -23,6 +23,7 @@ import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Parameters; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraMetadata; import android.os.Build; import android.os.Handler; import android.os.HandlerThread; @@ -182,10 +183,10 @@ public class CameraHolder { = manager.getCameraCharacteristics(cameraId); Log.d(TAG,"cameraIdList size ="+cameraIdList.length); int facing = characteristics.get(CameraCharacteristics.LENS_FACING); - if (facing == CameraCharacteristics.LENS_FACING_FRONT) { + if (mFrontCameraId == -1 && facing == CameraMetadata.LENS_FACING_FRONT) { CaptureModule.FRONT_ID = i; mFrontCameraId = i; - } else if (mBackCameraId != -1) { + } else if (mBackCameraId == -1 && facing == CameraMetadata.LENS_FACING_BACK) { mBackCameraId = i; } mCharacteristics.add(i, characteristics); -- cgit v1.2.3 From 39765335ed74d3b2ed5f4ad966c250b031821ae4 Mon Sep 17 00:00:00 2001 From: Divya Sharma Date: Fri, 13 Sep 2019 10:03:02 -0700 Subject: Removes all usages of ScriptC_* variables. Change-Id: I42386aac4e9f534637fe1a81f29c596341dc8077 --- src/com/android/camera/imageprocessor/FrameProcessor.java | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/com/android/camera/imageprocessor/FrameProcessor.java b/src/com/android/camera/imageprocessor/FrameProcessor.java index 6397229f0..cd1a5f8a2 100755 --- a/src/com/android/camera/imageprocessor/FrameProcessor.java +++ b/src/com/android/camera/imageprocessor/FrameProcessor.java @@ -81,8 +81,6 @@ public class FrameProcessor { private ListeningTask mListeningTask; private RenderScript mRs; private Activity mActivity; - ScriptC_YuvToRgb mRsYuvToRGB; - ScriptC_rotator mRsRotator; private Size mSize; private Object mAllocationLock = new Object(); private boolean mIsAllocationEverUsed; @@ -108,8 +106,6 @@ public class FrameProcessor { mFinalFilters = new ArrayList(); mRs = RenderScript.create(mActivity); - mRsYuvToRGB = new ScriptC_YuvToRgb(mRs); - mRsRotator = new ScriptC_rotator(mRs); } private void init(Size previewDim) { @@ -158,11 +154,6 @@ public class FrameProcessor { Type.Builder nv21TypeBuilder = new Type.Builder(mRs, Element.U8(mRs)); nv21TypeBuilder.setX(width * height * 3 / 2); mProcessAllocation = Allocation.createTyped(mRs, nv21TypeBuilder.create(), Allocation.USAGE_SCRIPT); - mRsRotator.set_gIn(mInputAllocation); - mRsRotator.set_gOut(mProcessAllocation); - mRsRotator.set_width(width); - mRsRotator.set_height(height); - mRsRotator.set_pad(stridePad); int degree = 90; if(mModule.getMainCameraCharacteristics() != null) { degree = mModule.getMainCameraCharacteristics(). @@ -171,10 +162,6 @@ public class FrameProcessor { degree = Math.abs(degree - 90); } } - mRsRotator.set_degree(degree); - mRsYuvToRGB.set_gIn(mProcessAllocation); - mRsYuvToRGB.set_width(height); - mRsYuvToRGB.set_height(width); } public ArrayList getFrameFilters() { @@ -491,8 +478,6 @@ public class FrameProcessor { createAllocation(stride, height, stride - width); } mInputAllocation.copyFrom(yvuBytes); - mRsRotator.forEach_rotate90andMerge(mInputAllocation); - mRsYuvToRGB.forEach_nv21ToRgb(mOutputAllocation); mOutputAllocation.ioSend(); if (mVideoOutputAllocation != null) { mVideoOutputAllocation.copyFrom(mOutputAllocation); -- cgit v1.2.3 From f3b7cacf2b53b3239fc29ffddc2028be6dba89a2 Mon Sep 17 00:00:00 2001 From: jinwu Date: Tue, 5 Nov 2019 18:40:39 +0800 Subject: Update version number to 2.02.035 Change-Id: I78b8bef52fff617a9f0d701cf3d9edb7dd172622 --- version.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.mk b/version.mk index 972bb3ef0..548001eaf 100755 --- a/version.mk +++ b/version.mk @@ -40,7 +40,7 @@ # base_version_build is 3 digits and auto-increment for fixing CR. base_version_major := 2 base_version_minor := 02 -base_version_build := 034 +base_version_build := 035 ##################################################### ##################################################### -- cgit v1.2.3