RK3288     Android5.1   多个品牌USB摄像头

同一块主板和代码,大部分品牌的USB摄像头可以正常使用,只有某一款USB摄像头不能使用。

插上摄像头,底层可以识别到摄像头。

<>[ 47.479515] usb -1.4: new high-speed USB device number  using usb20_host
<>[ 47.696548] usb -1.4: New USB device found, idVendor=058f, idProduct=
<>[ 47.696719] usb -1.4: New USB device strings: Mfr=, Product=, SerialNumber=
<>[ 47.696825] usb -1.4: Product: PC Camera
<>[ 47.696908] usb -1.4: Manufacturer: Alcor Micro, Corp.
<>[ 47.708510] uvcvideo: Found UVC 1.00 device PC Camera (058f:)
<>[ 47.718236] input: PC Camera as /devices/ff540000.usb/usb3/-/-1.4/-1.4:1.0/input/input5

但是每次打开摄像头app都显示“无法连接到相机”,上层 log 如下。

D/CameraHal(  ): setParameters(): setParameters(): Set preview size 800x600
... ...
D/CameraHal( ): startPreview(): startPreview177:preview_w = ,preview_h = ,drv_w = ,drv_h =
D/CameraHal( ): cameraSetSize(): cameraSetSize():IN, w = ,h =
... ...
E/CameraHal( ): getFrame(): getFrame(): VIDIOC_DQBUF Failed!!! err[I/O error]
E/CameraHal( ): getFrame(): getFrame(): camera driver or device may be error, so notify CAMERA_MSG_ERROR

最后官方的回复如下:

USB摄像头800x600分辨率输出有问题,强制使用1280x960,同时保留1280x720为录像使用,由软件剪切到1280x720

diff --git a/CameraHal/CameraUSBAdapter.cpp b/CameraHal/CameraUSBAdapter.cpp
index b88dd17..adb446b
--- a/CameraHal/CameraUSBAdapter.cpp
+++ b/CameraHal/CameraUSBAdapter.cpp
@@ -, +, @@ void CameraUSBAdapter::initDefaultParameters(int camFd) params.set(KEY_PREVIEW_W_FORCE,"");
params.set(KEY_PREVIEW_H_FORCE,"");
- params.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, parameterString.string());
- params.setPreviewSize(,);
+ params.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, "1280x960,1280x720");
+ params.setPreviewSize(, );
/*picture size setting*/
params.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, parameterString.string());
params.setPictureSize(mCamDriverFrmWidthMax, mCamDriverFrmHeightMax);

按照官方的 patch 修改后,摄像头可以正常使用。

如果出现可以预览,不能拍照的问题,还需要更改拍照的分辨率

diff --git a/CameraHal/CameraUSBAdapter.cpp b/CameraHal/CameraUSBAdapter.cpp
index b88dd17..adb446b
--- a/CameraHal/CameraUSBAdapter.cpp
+++ b/CameraHal/CameraUSBAdapter.cpp
@@ -, +, @@ void CameraUSBAdapter::initDefaultParameters(int camFd) params.set(KEY_PREVIEW_W_FORCE,"");
params.set(KEY_PREVIEW_H_FORCE,"");
params.set(CameraParameters::KEY_SUPPORTED_PREVIEW_SIZES, "1280x960,1280x720");
params.setPreviewSize(, );
/*picture size setting*/
- params.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, parameterString.string());
- params.setPictureSize(mCamDriverFrmWidthMax, mCamDriverFrmHeightMax);
+ params.set(CameraParameters::KEY_SUPPORTED_PICTURE_SIZES, "1280x960,1280x720");
+ params.setPictureSize(, );

RK3288 USB UVC camera 摄像头 VIDIOC_DQBUF Failed!!! err[I/O error]的更多相关文章

  1. EasyPusher进行Android UVC外接摄像头直播推送实现方法

    最近EasyPusher针对UVC摄像头做了适配.我们结合了UVCCamera与EasyPusher,支持将UVC摄像头的视频推送到RTSP服务器上.在此特别感谢UVCCamera这个牛逼的项目! 来 ...

  2. 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

    問題 鏈接Redis報錯`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379] 解決 啟動 ...

  3. 【err】开启Persistence-M模式-Check failed: err == CUBLAS_STATUS_SUCCESS (1 vs. 0) : Create cublas handle failed

    前言 安装好CUDA.CUDNN.NVIDIA driver之后,使用mxnet框架的时候出现该错误,本文记录该问题的解决方法. 环境 ubuntu 16.04 MxNet Cuda9.0 Nvidi ...

  4. 解决 AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

    页面报错: ConnectionException In AbstractConnection.php line 155 AUTH` failed: ERR Client sent AUTH, but ...

  5. idea报错:error java compilation failed internal java compiler error

    idea下面报如下问题 error java compilation failed internal java compiler error 解决办法:Setting->Compiler-> ...

  6. idea Error:java: Compilation failed: internal java compiler error

    idea 遇到Error:java: Compilation failed: internal java compiler error 是提示说你当前使用的编译器jdk版本不对. 按住Ctrl+Alt ...

  7. Error:java:Compilation failed: internal java compiler error

    在IDEA中编译时出现这个错误:Error:java:Compilation failed: internal java compiler error! Information:Using javac ...

  8. Deployment failed due to an error in FastDev assembly synchronization.

    在编译的时候发生Assembly synchronization error,显示信息为:Deployment failed due to an error in FastDev assembly s ...

  9. iOS9 白名单问题 -canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx"

    [iOS开发]-canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query fo ...

随机推荐

  1. 关系型数据库事务遵循ACID原则

    事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功 ...

  2. Math Issues

    Oh no, our Math object was "accidently" reset. Can you re-implement some of those function ...

  3. Markdown_00_资源帖

    一.官方资料 1.原始官方文档 daringfireball.net 2.官方文档中文版 Markdown 语法说明 (简体中文版) Markdown: Basics (快速入门) 3.Typora官 ...

  4. MySQL20个经典面试题

    MySQL20个经典面试题 Part2:经典题目 1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不 ...

  5. linux系统参数统计脚本

    #!/bin/sh clear if [[ $# -eq 0 ]] then #Define Variable Reset_terminal Reset_terminal=$(tput sgr0) # ...

  6. mssqlserver SQL注释快捷键

    注释快捷键 选中语句(快捷键:光标定位到需要注释块的最顶行,按住shift+home选中行,放开再按下shift+向下键,选中块) 按住Ctrl然后依次按K,C取消注释快捷键 选中语句 按住Ctrl然 ...

  7. word中怎么快速选中光标之前或之后的全部内容?

    在Word中,快速选中=光标之后=的全部内容的快捷键:Ctrl + Shift + End:在Word中,快速选中=光标之前=的全部内容的快捷键:Ctrl + Shift + Home.在Word中, ...

  8. Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法

    最近在学习Android方面的编程,这个过程中出现了许多的错误,其中最多的错误是出现在构建工具进行编译的时候.这里分析一个出现的错误,Failed to resolve: com.android.su ...

  9. python类中self是什么

    参考文献:http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html 注: (1)self在定义类的方法时是必须有的. (2)调用时 ...

  10. 【剑指offer】数字在排序数组中出现的次数,C++实现

    原创博文,转载请注明出处! # 题目 # 思路 利用二分查找法,查找元素k在排序数组中第一次出现的位置m及最后一次出现的位置n,m-n+1即为元素k再排序数组中出现的次数.       二分查找法在数 ...