首页 > 其他分享 >USB前后置摄像头切换

USB前后置摄像头切换

时间:2023-08-04 14:48:20浏览次数:33  
标签:card FACING cnt USB cap facing 切换 uvc 摄像头

方法1:
修改文件:

hardware\rockchip\camera\CameraHal\CameraHal_Module.cpp
 //默认前置置摄像头
camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_FRONT ;//默认后置置摄像头
camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_BACK;

 

所以将CAMERA_FACING_BACKCAMERA_FACING_FRONT对换即可
源代码:

#ifdef LAPTOP} else if (strstr((char*)&capability.card[0], "HP HD") != NULL|| strstr((char*)&capability.card[0], "HP IR")) {camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_FRONT;if (strstr((char*)&capability.card[0], "HP IR"))gCamerasUnavailabled++;gUsbCameraNames[cam_cnt&0x01] = String8((char*)&capability.card[0]);LOGD("Camera %d name: %s", (cam_cnt&0x01), gUsbCameraNames[cam_cnt&0x01].string());
#endif} else {camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_BACK;}  if ((cam_cnt&0x01) == 0)//默认前置摄像头camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_FRONT ;else//默认后置置摄像头camInfoTmp[cam_cnt&0x01].facing_info.facing = CAMERA_FACING_BACK;:::::

 

方法2修改驱动:
将capability card改为"facing-orientation".
例如facing(1), orientation(180)就是"front-180",android的CameraHal会根据命名规则来解析是前置摄像头还是后置摄像头,以及摄像头的方向.如果要做多个摄像头兼容可以加上VID与PID匹配.

diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 196198f..d81586f 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -564,6 +564,14 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)memset(cap, 0, sizeof *cap);strlcpy(cap->driver, "uvcvideo", sizeof cap->driver);strlcpy(cap->card, vdev->name, sizeof cap->card);
+
+               if(le16_to_cpu(stream->dev->udev->descriptor.idVendor)==0x058f &&
+                       le16_to_cpu(stream->dev->udev->descriptor.idProduct)==0x3841){//058f:3841
+                       pr_info("uvc vendor product matched\n");
+                       memset(cap->card, 0, sizeof cap->card);
+                       strlcpy(cap->card, "front-180", sizeof cap->card);
+               }
+usb_make_path(stream->dev->udev,cap->bus_info, sizeof(cap->bus_info));cap->version = LINUX_VERSION_CODE;

 

方法3:

rk3399/hardware/interfaces$ git diff .
diff --git a/camera/device/3.4/default/ExternalCameraDevice.cpp b/camera/device/3.4/default/ExternalCameraDevice.cpp
old mode 100644
new mode 100755
index 6dfe9d7..577f793
--- a/camera/device/3.4/default/ExternalCameraDevice.cpp
+++ b/camera/device/3.4/default/ExternalCameraDevice.cpp
@@ -309,7 +309,7 @@ status_t ExternalCameraDevice::initDefaultCharsKeys(UPDATE(ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,&opticalStabilizationMode, 1);

-    const uint8_t facing = ANDROID_LENS_FACING_BACK;
+    const uint8_t facing = ANDROID_LENS_FACING_FRONT;

UPDATE(ANDROID_LENS_FACING, &facing, 1);// android.noiseReduction
USB前后置摄像头切换 (ngui.cc)    

标签:card,FACING,cnt,USB,cap,facing,切换,uvc,摄像头
From: https://www.cnblogs.com/wanglongjiang/p/17605868.html

相关文章

  • 基于Aidlux平台实现手机摄像头实时Canny检测
    第一步:通过Github查找作者TommyZihao,在其aidlux_tutorial工程下找到“用手机摄像头玩转OpenCV”这个项目,并以压缩包的形式下载下来。 第二步:从手机端登录Aidlux,根据Cloud_ip,获取IP地址,在电脑端进行输入,远程登录Aidlux桌面。默认密码:aidlux 第三步: 远程传输代码文件......
  • ubuntu 默认python版本切换
    Ubuntu下完美切换Python版,即设置系统默认的python版本(亲测有效)_ubuntu切换python版本_关彼得的博客-CSDN博客 sudosuupdate-alternatives--listpythonupdate-alternatives:error:noalternativesforpythonupdate-alternatives--install/usr/bin/pythonpytho......
  • Linux字符界面以及图形化界面切换方法
    字符界面init3切换到字符界面init各个级别介绍:0—停运1—单用户模式2—没有使用(可由用户定义)3—完全的多用户模式4—没有使用(可由用户定义)5—完全的多用户模式(带有基于X的登录屏幕)6—重新引导如果你使用的是文本登录屏幕,你是在运行级别3中操作。如果你使用的是......
  • pyhon - 监听usb插入并复制
    importtimefromshutilimportcopytreefrompsutilimportdisk_partitionscopyFlag=FalsedefusbCopy(driver):try:path=r'D:\usb-'+time.strftime("%Y%m%d%H%M%S",time.localtime())print(f'开始复制,复制路径:{pa......
  • 《摄像头篇》c#使用Aforge调用摄像头拍照
    使用Aforge调用摄像头拍照参考链接:https://www.jb51.net/article/148364.htm这篇文章主要为大家详细介绍了C#使用Aforge调用摄像头拍照的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本文实例为大家分享了C#使用Aforge调用摄像头拍照的具体......
  • 利用ZoomEye探索互联网hikvision摄像头——直接htp://www.zoomeye.org/search?q=DVRDV
    实践了下,zoomeye或者shodan都可以!还是很吓人的...         然后随便点击一个就进去了。。。 利用ZoomEye探索互联网hikvision摄像头2021年4月2日某天使用IISPUTSCANNER扫描C段观察HTTPBANNER为DVRDVS-Webs点开后发现为hikvision摄像头的WEB端于是乎想到了知道创宇......
  • swiper 设置 autoHeight: true, 第一个swiper下拉后,切换到第二个swiper后,滚动条不置
    给swiper添加事件on:{slideChangeTransitionEnd:function(swiper,index){document.documentElement.scrollTop=0;//Formodernbrowsersdocument.body.scrollTop=0;//Forolderbrowsers*///强制body置顶,}}目前只找到这种方法,这种......
  • react使用自定义animation实现水平效果的路由切换
    例如:A组件跳B组件 A组件:importReactfrom'react';import'./A.scss'import{useNavigate}from'react-router-dom';exportdefaultfunctionA(){letnavigate=useNavigate()return(<divonClick={()=>{l......
  • 【动画进阶】有意思的 Emoji 3D 表情切换效果
    最近,群里面的同学发了这么一个非常有意思是动画效果:原效果地址--CodePenDemo--LetterHop当然,原效果,主要使用了GSAP动画库以及一个3D文字JavaScript库:import{Those3DTexts}from"https://cdn.skypack.dev/that-3d-text-library";import{gsap}from"https:......
  • ant design pro<Tabs>切换时可以重新请求
    参考:https://blog.csdn.net/weixin_43915401/article/details/130953169需求:每次切换tab标签都重新发送请求解决方法:destroyInactiveTabPane属性:whetherdestroyinactiveTabPanewhenchangetab,切换tab时,销毁tabPane<TabsdestroyInactiveTabPane>这个属性,官方文档里没有,需......