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/v4l2_metadata_factory.cpp | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-) diff --git a/android/hardware/aw/camera/3_4/v4l2_metadata_factory.cpp b/android/hardware/aw/camera/3_4/v4l2_metadata_factory.cpp index db267da..46add00 100755 --- a/android/hardware/aw/camera/3_4/v4l2_metadata_factory.cpp +++ b/android/hardware/aw/camera/3_4/v4l2_metadata_factory.cpp @@ -16,7 +16,9 @@ #include "v4l2_metadata_factory.h" +#include <iostream> #include <map> +#include <sstream> #include <utility> #include <vector> @@ -52,8 +54,32 @@ // but doing it here prevents connecting and disconnecting for each one). gdevice = device; + char * s_value; + s_value = pCameraCfg->supportPictureSizeValue(); + int merge_status = 0; + + std::string st1 = s_value; + int pic_width = 0; + int pic_height = 0; + std::string tmp; + std::vector<std::string> s_data; + std::stringstream input(st1); + + while (getline(input, tmp, ',')) { + s_data.push_back(tmp); + } + for (auto s : s_data) { + sscanf(s.c_str(), "%dx%d", &pic_width,&pic_height); + if (pic_width * pic_height > 4000*3000) { + merge_status = 1; + } + } + + //V4L2Wrapper::Connection temp_connection = + // V4L2Wrapper::Connection(device, MAIN_STREAM); V4L2Wrapper::Connection temp_connection = - V4L2Wrapper::Connection(device, MAIN_STREAM); + V4L2Wrapper::Connection(device, MAIN_STREAM, merge_status); + if (temp_connection.status()) { HAL_LOGE("Failed to connect to device: %d.", temp_connection.status()); return temp_connection.status(); -- Gitblit v1.6.2