Disable Camera2 API for devices with legacy hardware support (issue 834423003 by magjed@chromium.org)

104 views
Skip to first unread message

mag...@chromium.org

unread,
Jan 12, 2015, 8:41:41 AM1/12/15
to pe...@chromium.org, chromium...@chromium.org, poscia...@chromium.org, wjia+...@chromium.org, avayvo...@chromium.org, mcasas...@chromium.org, feature-me...@chromium.org
Reviewers: perkj,

Message:
perkj - Can you take a look?

Description:
Disable Camera2 API for devices with legacy hardware support

BUG=446610
TBR=mcasas

Please review this at https://codereview.chromium.org/834423003/

Base URL: https://chromium.googlesource.com/chromium/src.git@master

Affected files (+11, -3 lines):
M media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
M media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java


Index:
media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
diff --git
a/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
b/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
index
9dc42889124f5a1b47929305c20542f178727457..802792b63f36f09672bace0980427d9c22db4a84
100644
---
a/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
+++
b/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
@@ -274,6 +274,14 @@ public class VideoCaptureCamera2 extends VideoCapture {
}
}

+ static boolean isLegacyDevice(Context appContext, int id) {
+ final CameraCharacteristics cameraCharacteristics =
+ getCameraCharacteristics(appContext, id);
+ return cameraCharacteristics != null
+ &&
cameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)
+ == CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY;
+ }
+
static int getNumberOfCameras(Context appContext) {
final CameraManager manager =
(CameraManager)
appContext.getSystemService(Context.CAMERA_SERVICE);
Index:
media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java
diff --git
a/media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java
b/media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java
index
87d0efd5ba40f90040396bc216cefabdf5af0067..ae6018df908b16031a52bfed8a9ebc28cf4f2740
100644
---
a/media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java
+++
b/media/base/android/java/src/org/chromium/media/VideoCaptureFactory.java
@@ -96,7 +96,7 @@ class VideoCaptureFactory {
@CalledByNative
static VideoCapture createVideoCapture(
Context context, int id, long nativeVideoCaptureDeviceAndroid)
{
- if (isLReleaseOrLater()) {
+ if (isLReleaseOrLater()
&& !VideoCaptureCamera2.isLegacyDevice(context, id)) {
return new VideoCaptureCamera2(context,
id,

nativeVideoCaptureDeviceAndroid);
@@ -118,7 +118,7 @@ class VideoCaptureFactory {

@CalledByNative
static String getDeviceName(int id, Context appContext) {
- if (isLReleaseOrLater()) {
+ if (isLReleaseOrLater()
&& !VideoCaptureCamera2.isLegacyDevice(appContext, id)) {
return VideoCaptureCamera2.getName(id, appContext);
}
return (ChromiumCameraInfo.isSpecialCamera(id))
@@ -128,7 +128,7 @@ class VideoCaptureFactory {

@CalledByNative
static VideoCapture.CaptureFormat[] getDeviceSupportedFormats(Context
appContext, int id) {
- if (isLReleaseOrLater()) {
+ if (isLReleaseOrLater()
&& !VideoCaptureCamera2.isLegacyDevice(appContext, id)) {
return
VideoCaptureCamera2.getDeviceSupportedFormats(appContext, id);
}
return ChromiumCameraInfo.isSpecialCamera(id)


pe...@chromium.org

unread,
Jan 12, 2015, 8:51:56 AM1/12/15
to mag...@chromium.org, chromium...@chromium.org, poscia...@chromium.org, wjia+...@chromium.org, avayvo...@chromium.org, mcasas...@chromium.org, feature-me...@chromium.org
lgtm but please add a TEST= and describe how to test and verify that
Camera2 is
used by N5 or N6.


https://codereview.chromium.org/834423003/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
File
media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java
(right):

https://codereview.chromium.org/834423003/diff/20001/media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java#newcode279
media/base/android/java/src/org/chromium/media/VideoCaptureCamera2.java:279:
getCameraCharacteristics(appContext, id);
weird indentation

https://codereview.chromium.org/834423003/

commi...@chromium.org

unread,
Jan 12, 2015, 9:08:08 AM1/12/15
to mag...@chromium.org, pe...@chromium.org, chromium...@chromium.org, poscia...@chromium.org, wjia+...@chromium.org, avayvo...@chromium.org, mcasas...@chromium.org, feature-me...@chromium.org

commi...@chromium.org

unread,
Jan 12, 2015, 10:04:19 AM1/12/15
to mag...@chromium.org, pe...@chromium.org, chromium...@chromium.org, poscia...@chromium.org, wjia+...@chromium.org, avayvo...@chromium.org, mcasas...@chromium.org, feature-me...@chromium.org
Committed patchset #1 (id:20001)

https://codereview.chromium.org/834423003/

commi...@chromium.org

unread,
Jan 12, 2015, 10:05:08 AM1/12/15
to mag...@chromium.org, pe...@chromium.org, chromium...@chromium.org, poscia...@chromium.org, wjia+...@chromium.org, avayvo...@chromium.org, mcasas...@chromium.org, feature-me...@chromium.org
Patchset 1 (id:??) landed as
https://crrev.com/f62e6ae41bc9cb5c4d4ae78eda8e441a8a9ec657
Cr-Commit-Position: refs/heads/master@{#311047}

https://codereview.chromium.org/834423003/
Reply all
Reply to author
Forward
0 new messages