Android9(P)添加第三个摄像头预览图片镜像

第三个摄像头的ID为 cameraID=2;

packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java                                        | 11 ++++-------
 packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java                                        | 16 ++++------------
 packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java                                    |  4 ----
 vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/imx258/imx258_lib.h |  4 ++--
 4 files changed, 10 insertions(+), 25 deletions(-)
 mode change 100755 => 100644 packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
 mode change 100755 => 100644 packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
 mode change 100755 => 100644 packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java

diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
old mode 100755
new mode 100644
index bd5c974..09b1369
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
@@ -3963,6 +3963,10 @@ public class PhotoModule
         int preview_flip_value = PersistUtil.getPreviewFlip();
         int video_flip_value = PersistUtil.getVideoFlip();
         int picture_flip_value = PersistUtil.getPictureFlip();
+		if (mCameraId == 2) {
+			video_flip_value = 1;
+			picture_flip_value = 1;
+		}
         int rotation = CameraUtil.getJpegRotationForCamera1(mCameraId, mOrientation);
         mParameters.setRotation(rotation);
         if (rotation == 90 || rotation == 270) {
@@ -3983,13 +3987,6 @@ public class PhotoModule
                 picture_flip_value = 1;
             }
         }

         String preview_flip = CameraUtil.getFilpModeString(preview_flip_value);
         String video_flip = CameraUtil.getFilpModeString(video_flip_value);
         String picture_flip = CameraUtil.getFilpModeString(picture_flip_value);
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java b/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
old mode 100755
new mode 100644
index 4139ada..8bb8b42
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
@@ -2239,6 +2239,10 @@ public class VideoModule implements CameraModule,
         int preview_flip_value = PersistUtil.getPreviewFlip();
         int video_flip_value = PersistUtil.getVideoFlip();
         int picture_flip_value = PersistUtil.getPictureFlip();
+		if (mCameraId == 2) {
+			video_flip_value = 1;
+			picture_flip_value = 1;
+		}
         int rotation = CameraUtil.getJpegRotationForCamera1(mCameraId, mOrientation);
         mParameters.setRotation(rotation);
         if (rotation == 90 || rotation == 270) {
@@ -2259,18 +2263,6 @@ public class VideoModule implements CameraModule,
                 picture_flip_value = 1;
             }
         }

         String preview_flip = CameraUtil.getFilpModeString(preview_flip_value);
         String video_flip = CameraUtil.getFilpModeString(video_flip_value);
         String picture_flip = CameraUtil.getFilpModeString(picture_flip_value);
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java b/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
old mode 100755
new mode 100644
index ffc17ad..0c3a84e
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
@@ -930,10 +930,6 @@ public class CameraUtil {
         } else { // back-facing camera
             rotation = (info.orientation + orientation) % 360;
         }

         return rotation;
     }
 
diff --git a/vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/imx258/imx258_lib.h b/vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/imx258/imx258_lib.h
index adb98ea..398aeb2 100755
--- a/vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/imx258/imx258_lib.h
+++ b/vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor/libs/imx258/imx258_lib.h
@@ -337,7 +337,7 @@
 }
 
 #ifndef FLIP_MIRROR
-  #define FLIP_MIRROR_SETTING {{0x0101, 0x00, 0x00}}
+  #define FLIP_MIRROR_SETTING {{0x0101, 0x02, 0x00}}
 #else
   #define FLIP_MIRROR_SETTING {{0x0101, 0x03, 0x00}}
 #endif
@@ -1149,7 +1149,7 @@ static sensor_lib_t sensor_lib_ptr =
     .connection_mode = SENSOR_MIPI_CSI,
     .raw_output = SENSOR_10_BIT_DIRECT,
 #ifndef FLIP_MIRROR
-    .filter_arrangement = SENSOR_RGGB,
+    .filter_arrangement = SENSOR_GBRG,
 #else
     .filter_arrangement = SENSOR_BGGR,
 #endif
--
libgit2 0.25.0

 -------

如果单单是镜像,底层不改只改framework的话,修改如下

diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
index bd5c974..8040246 100755
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java
@@ -3986,6 +3986,9 @@ public class PhotoModule
+                if(mCameraId==2){
+                        Log.e(TAG,"cfw--mCameraId="+mCameraId);
+                        preview_flip_value=2;
+                       if(rotation==180){
+                               picture_flip_value=3;
+                       }
+                }
+               /*else if(mCameraId==1){
+                    picture_flip_value = 2;
+                }*/
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java b/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
old mode 100755
new mode 100644
index 4139ada..8bb8b42
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java
@@ -2259,18 +2263,6 @@ public class VideoModule implements CameraModule,
                 picture_flip_value = 1;
             }
         }
+        if(mCameraId==2){
+            Log.e(TAG,"cfw--mCameraId="+mCameraId);
+            preview_flip_value=2;
+            if(rotation==180){
+                Log.e(TAG,"cfw--rotation="+rotation);
+                video_flip_value = 3;
+            }
+        }
+        /*else if(mCameraId==1){
+            picture_flip_value = 2;
+            video_flip_value = 2;
+        }*/
         String preview_flip = CameraUtil.getFilpModeString(preview_flip_value);
         String video_flip = CameraUtil.getFilpModeString(video_flip_value);
        
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java b/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
index ffc17ad..bf30c7b 100755
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/util/CameraUtil.java
@@ -925,11 +925,13 @@ public class CameraUtil {
             orientation = 0;
         }
         CameraHolder.CameraInfo info = CameraHolder.instance().getCameraInfo()[cameraId];
+               Log.e(TAG,info.orientation+"-"+orientation);
         if (info.facing == CameraHolder.CameraInfo.CAMERA_FACING_FRONT) {
             rotation = (info.orientation - orientation + 360) % 360;
         } else { // back-facing camera
             rotation = (info.orientation + orientation) % 360;
         }
+               Log.e(TAG,"=cfw--"+rotation+"-"+info.facing+"--"+CameraHolder.CameraInfo.CAMERA_FACING_FRONT);
+               if(cameraId==2&&rotation==0){
+                    Log.e(TAG,"cfw--"+cameraId);
+                    rotation=180;
+                }

发布了18 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37207639/article/details/102957934