From d9927380ed7c8366f762049be9f3fee225860833 Mon Sep 17 00:00:00 2001
From: liyujie <2352380935@qq.com>
Date: Thu, 28 Aug 2025 12:04:16 +0000
Subject: [PATCH] [2/4]解决USB摄像头打开相机预览界面绿屏

---
 android/hardware/aw/camera/3_4/camera_stream.cpp |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/android/hardware/aw/camera/3_4/camera_stream.cpp b/android/hardware/aw/camera/3_4/camera_stream.cpp
index d5d8382..1b8f207 100755
--- a/android/hardware/aw/camera/3_4/camera_stream.cpp
+++ b/android/hardware/aw/camera/3_4/camera_stream.cpp
@@ -397,7 +397,8 @@
 int CameraStream::initialize(uint32_t width,
                              uint32_t height,
                              int      format,
-                             uint32_t usage) {
+                             uint32_t usage,
+                             bool     mergeStreamFlag) {
   int res = -1;
   HAL_LOGD("%s: %d x %d, format:%d(%s), usage:%d.",
       mStreamType.c_str(),
@@ -407,7 +408,7 @@
       getHalPixelFormatString(format).c_str(),
       usage);
 
-  res = stream_->SetParm(V4L2_MODE_VIDEO);
+  res = stream_->SetParm(V4L2_MODE_VIDEO, width, height);
   if (res) {
     HAL_LOGE("%s: Failed to SetParm.", mStreamType.c_str());
   }
@@ -417,7 +418,7 @@
     format = HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED;
   }
   StreamFormat stream_format(format, width, height);
-  res = stream_->SetFormat(stream_format, &max_buffers);
+  res = stream_->SetFormat(stream_format, &max_buffers, mergeStreamFlag);
   if (res) {
     HAL_LOGE("%s: Failed to set stream to correct format for stream: %d.",
         mStreamType.c_str(), res);
@@ -543,9 +544,14 @@
 
 int CameraMainStream::initialize(uint32_t width,
                                  uint32_t height,
-                                 int format,
-                                 uint32_t usage) {
-  return CameraStream::initialize(width, height, format, usage);
+                                 int      format,
+                                 uint32_t usage,
+                                 bool mergeStreamFlag) {
+  return CameraStream::initialize(width,
+                                  height,
+                                  format,
+                                  usage,
+                                  mergeStreamFlag);
 }
 
 int CameraMainStream::setFormat(uint32_t width,
@@ -680,8 +686,14 @@
 int CameraSubStream::initialize(uint32_t width,
                                 uint32_t height,
                                 int format,
-                                uint32_t usage) {
-  return CameraStream::initialize(width, height, format, usage);
+                                uint32_t usage,
+                                bool mergeStreamFlag) {
+  return CameraStream::initialize(width,
+                                  height,
+                                  format,
+                                  usage,
+                                  mergeStreamFlag);
+
 }
 
 int CameraSubStream::setFormat(uint32_t width,
@@ -803,7 +815,8 @@
 int CameraMainMirrorStream::initialize(uint32_t /*width*/,
                                        uint32_t /*height*/,
                                        int /*format*/,
-                                       uint32_t /*usage*/) {
+                                       uint32_t /*usage*/,
+                                       bool /*mergeStreamFlag*/) {
   initialized = true;
   return 0;
 }
@@ -935,7 +948,8 @@
 int CameraSubMirrorStream::initialize(uint32_t /*width*/,
                                       uint32_t /*height*/,
                                       int /*format*/,
-                                      uint32_t /*usage*/) {
+                                      uint32_t /*usage*/,
+                                      bool /*mergeStreamFlag*/) {
   int res = 0;
   initialized = true;
   return res;

--
Gitblit v1.6.2