summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/camera2/CameraManager.java4
-rw-r--r--core/java/android/hardware/camera2/params/MandatoryStreamCombination.java14
2 files changed, 13 insertions, 5 deletions
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index f662b616cf86..c8276b25c52d 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -857,8 +857,10 @@ public final class CameraManager {
*
* @param cameraId a non-{@code null} camera identifier
* @return {@code true} if cameraId is a hidden physical camera device
+ *
+ * @hide
*/
- private boolean isHiddenPhysicalCamera(String cameraId) {
+ public static boolean isHiddenPhysicalCamera(String cameraId) {
try {
ICameraService cameraService = CameraManagerGlobal.get().getCameraService();
// If no camera service, no support
diff --git a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
index d44b6b5aeb29..6eaf54bd0d4d 100644
--- a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
+++ b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
@@ -28,6 +28,7 @@ import android.graphics.ImageFormat.Format;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraCharacteristics.Key;
import android.hardware.camera2.CameraDevice;
+import android.hardware.camera2.CameraManager;
import android.hardware.camera2.CameraMetadata;
import android.hardware.camera2.params.StreamConfigurationMap;
import android.hardware.camera2.utils.HashCodeHelpers;
@@ -661,6 +662,7 @@ public final class MandatoryStreamCombination {
private List<Integer> mCapabilities;
private int mHwLevel, mCameraId;
private StreamConfigurationMap mStreamConfigMap;
+ private boolean mIsHiddenPhysicalCamera;
private final Size kPreviewSizeBound = new Size(1920, 1088);
@@ -680,6 +682,8 @@ public final class MandatoryStreamCombination {
mCapabilities = capabilities;
mStreamConfigMap = sm;
mHwLevel = hwLevel;
+ mIsHiddenPhysicalCamera =
+ CameraManager.isHiddenPhysicalCamera(Integer.toString(mCameraId));
}
/**
@@ -893,8 +897,10 @@ public final class MandatoryStreamCombination {
Size recordingMaxSize = new Size(0, 0);
Size previewMaxSize = new Size(0, 0);
Size vgaSize = new Size(640, 480);
- if (isExternalCamera()) {
- recordingMaxSize = getMaxExternalRecordingSize();
+ // For external camera, or hidden physical camera, CamcorderProfile may not be
+ // available, so get maximum recording size using stream configuration map.
+ if (isExternalCamera() || mIsHiddenPhysicalCamera) {
+ recordingMaxSize = getMaxCameraRecordingSize();
} else {
recordingMaxSize = getMaxRecordingSize();
}
@@ -1123,12 +1129,12 @@ public final class MandatoryStreamCombination {
}
/**
- * Return the maximum supported video size for external cameras using data from
+ * Return the maximum supported video size for cameras using data from
* the stream configuration map.
*
* @return Maximum supported video size.
*/
- private @NonNull Size getMaxExternalRecordingSize() {
+ private @NonNull Size getMaxCameraRecordingSize() {
final Size FULLHD = new Size(1920, 1080);
Size[] videoSizeArr = mStreamConfigMap.getOutputSizes(