
子类__Camera
KrisFei
工作记录.
展开
-
[RK3399][Android7.1] 调试笔记 --- 三颗以上USB Camera的支持
Platform: RK3399OS: Android 7.1Kernel: v4.4.83需求需要支持三个USB Camera,系统默认支持的是两颗。解决方法:以下是rockchip给的patch,不过是有缺失的:diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cppindex 2...原创 2020-03-27 17:34:36 · 3721 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- DVP Camera旋转预览和回调数据
Platform: RK3288OS: Android 6.0Kernel: 3.10.92需求:摄像头安装之后预览和预览回调画面是倒着的,需要旋转180°。现象:通过修改camera_board.xml中的参数<SensorOrientation orientation="0"></SensorOrientation>,发现只有预览画面正常,而预览回调数据还...原创 2019-11-12 11:08:35 · 1660 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- DVP摄像头OV5640预览异常
Platform: RK3288OS: Android 6.0Kernel: 3.10.92现象:配置好摄像头之后可以打开预览,但是显示画面异常,如下:解决方法:cam_board_rk3288.xml<SensorPhy phyMode="CamSys_Phy_Cif" sensor_d0_to_cif_d ="2" cif_num="0" sensorFmt="CamS...原创 2019-11-07 14:21:36 · 1520 阅读 · 0 评论 -
[RK3288][Android6.0] DVP接口摄像头OV5640添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.92DVP或者MIPI接口直接在camera board文件中改动就可以。cam_board_rk3288.xml:<?xml version="1.0" ?><BoardFile> <BoardXmlVersion version="v0.0xf.0">...原创 2019-11-07 14:03:48 · 1662 阅读 · 0 评论 -
[RK3399][Android7.1]调试笔记 --- 只使用UVC摄像头
rk3399平台可以支持多种不同接口的Camera,如MIPI, DVP, UVC camera。 对于DVP,MIPI的Camera,对应的配置是放在cam_board.xml的。 因此如果只使用UVC Camera,那么只要移除此文件就可以了。改动如下:kris@eco:~/rk3399/hardware/rockchip/camera$ g df 05bbf408a60a86...原创 2018-07-12 13:49:12 · 5650 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 设置Camera的facing属性
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83在rk3288平台上有讲过区分两颗不同以及两颗型号相同的uvc camera, 可参考如下两篇文章: [RK3288][Android6.0] 调试笔记 — 同时支持两颗USB UVC Camera [RK3288][Android6.0] 调试笔记 — 如何区分两颗相同的USB UVC...原创 2018-03-14 09:48:24 · 3546 阅读 · 8 评论 -
[RK3399][Android7.1] 调试笔记 --- 修改默认Camera preview size
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83有些Sensor的分辨率中并没有640x480的支持,而在camera初始化的时候是写死的。 CameraUSBAdapter.cpp:void CameraUSBAdapter::initDefaultParameters(int camFd){...... para...原创 2018-03-12 16:31:48 · 7050 阅读 · 8 评论 -
[RK3399][Android7.1] Camera中的不同api版本介绍
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83概述: 随着系统的升级,Camera的版本也跟着一起升级,升级的本质无非就是接口的更新或增加,以下的相机框图可以看到各个层的版本差异以及调用过程。不同层次有不同类型的api版本,依次是Camera API, Module API, Device API, HAL API...原创 2018-02-11 13:50:49 · 1816 阅读 · 0 评论 -
[RK3399][Android7.1] Camera HAL中的几个adapter
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83HAL中在new CamaerHal对象的时候会根据不同类型的sensor创建不同的adapter,以下是区别:CameraUSBAdapter: USB接口类型的摄像头,走v4l2.CameraIspSOCAdapter:dvp接口,isp控制器接收。CameraIspAdapt...原创 2018-02-09 15:34:30 · 3388 阅读 · 2 评论 -
[RK3399][Android7.1] 调试笔记 --- camera中的cam_board.xml
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83camera board xml 位于hardware/rockchip/camera/Config 目录下编译之后生成到system/etc下,名为cam_board.xml,此文件用于配置dvp mipi接口的sensor, 如果用的都是usb camera,那么此文件可以直接...原创 2018-02-08 10:57:56 · 6769 阅读 · 6 评论 -
[RK3399][Android7.1] 调试笔记 --- 如camera API版本使用确认
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83Camera API版本分V1和V2两个版本。Camera API1 Android 4.4 及更低版本设备上的应用级相机框架,通过 android.hardware.Camera 类提供。 Camera API2 Android 5.0 及更高版本设备上的应用级相机框架,通过 a...原创 2018-02-24 16:36:54 · 2829 阅读 · 0 评论 -
[RK3399][Android7.1] Camera各个层源文件路径记录
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83从上往下架构如下:rk3399使用的是Camera API v1以及HAL1版本,各个层的文件路径如下:应用框架: 利用 android.hardware.Camera API 来与相机硬件进行互动。在内部,此代码会调用相应的JNI以访问与该相机互动的原生代码。 路径: f...原创 2018-02-26 13:22:13 · 2572 阅读 · 2 评论 -
[RK3399][Android7.1] Camera HAL打开流程
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83以ov13850为例:camera_device_open -> CameraHal_Module.cpp camera_device = malloc(sizeof(*camera_device)); //分配一个struct rk_camera_device, 包含标...原创 2018-02-08 10:37:11 · 3353 阅读 · 0 评论 -
[RK3399][Android7.1] Camera HAL初始化流程
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83rk3399对HAL的处理基本上和rk3288一样没什么变化,详细可参考 [RK3288][Android6.0] Camera HAL流程小结camera_get_number_of_cameras -> //camera service会在开机的时候从HAL层获取came...原创 2018-02-02 11:30:45 · 6561 阅读 · 30 评论 -
[RK3288][Android6.0] 调试笔记 --- 摄像头断开后马上又自动重连上
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92由于此问题遇到的次数比较多,而且处理时间比较长,所以做个简单记录。背景遇到一部分UVC camera在使用或者开机之后遇到断开又自动重连上的现象。 相关Log如下:<6>[ 712.451556] usb 1-1: USB disconnect, devi...原创 2018-05-16 20:05:46 · 3857 阅读 · 14 评论 -
[RK3288][Android6.0] 调试笔记 --- 打开Camera提示setPreviewDisplay时Exception
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92背景:自己写了个Camera Preview程序做验证,出现了exception,log如下:01-03 13:46:08.801 2334 2334 E AndroidRuntime: FATAL EXCEPTION: main01-03 13:46:08.801 23...原创 2018-05-31 16:33:28 · 5041 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- NV21数据转成JPG
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92需要将camera preview callback拿到的NV21数据转换成jpg格式,实现如下:public void onPreviewFrame(byte[] data, Camera camera) { Camera.Size size = mCamera.getPara...原创 2018-06-01 10:17:32 · 1273 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- HDMI IN video配置添加
Platform: RK3399OS: Android 7.1 industryKernel: v4.4.83说明:芯片使用的是东芝的TC358749X大概的数据流程就是:HDMI -> TC358749X -> MIPI CSI -> kernel driver -> Camera HAL -> APP配置:主要分dts驱动和Camera Hal两...原创 2019-08-21 10:10:03 · 6132 阅读 · 11 评论 -
[RK3288][Android6.0] 调试笔记 --- 偶发USB摄像头无法打开(Protocol error)
Platform: RK3288OS: Android 6.0Kernel: 3.10.92现象:偶现某几个USB摄像头打开预览时卡住,Log提示VIDIOC_STREAMON Failed err=-1(Protocol error)Log:原因:有验证过不同分辨率的预览,也是会卡住。后来把USB线剪断就正常了,因此线的材质不太好,需要更换。...原创 2019-07-25 10:52:20 · 2259 阅读 · 17 评论 -
[RK3399][Android7.1] 调试笔记 --- 设置系统默认相机为1080p
Platform: RK3399OS: Android 7.1Kernel: v4.4.83需求:系统相机打开默认是1280*960,需要改成1920*1080解决方法:diff --git a/src/com/android/camera/settings/ResolutionSetting.java b/src/com/android/camera/settings/Resolu...原创 2019-06-26 10:34:01 · 3046 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 相机曝光模式以及等级的获取和设置
Platform: RK3288OS: Android 6.0Kernel: 3.10.92曝光模式种类:V4L2_EXPOSURE_AUTOAutomatic exposure time, automatic iris aperture.V4L2_EXPOSURE_MANUALManual exposure time, manual iris.V4L2...原创 2019-01-31 10:52:26 · 2165 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- RK3288-W引起USB摄像头只能识别一个
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92现象:之前有处理过 如何区分两颗相同的USB UVC Camera, 最近又出现了只能识别一颗摄像头。标题分析:查看log发现,两颗Camera的Facing属性都变成一样了。再查看kernel log,发现USB的root hub多了一个。而正常的情况只有3个hub:而区分usb...原创 2019-01-24 18:02:41 · 2501 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 三路以上Camera同时预览支持
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83系统默认只支持两路Camera,只要将CameraHal中的数量限制改掉就可以了。 另外,有些地方直接用0和1表示Camera通道,也要做相应修改。注意:因为Android只定义了Front和Back两种Camera属性,所以不能使用默认的APK测试。Patch:diff --...原创 2018-08-08 14:59:15 · 7393 阅读 · 26 评论 -
[RK3399][Android7.1] 调试笔记 --- Camera动态热插拔支持
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83RK3288平台修改请参考 [RK3288][Android6.0] 调试笔记 — Camera动态热插拔支持改动如下: CameraHal部分: /* */diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/Came...原创 2018-08-08 14:51:56 · 4819 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 原生人脸检测功能无法使用
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92说明:Google原生自带人脸检测功能,并且分两种。是通过传递Bitmap检测图中人脸,这里不做讨论。实时从Camera获取数据检测。至于这两种用法,可参考如下文章: Android 人脸检测 非人脸识别流程:第二种方法是在HAL层实现检测,start的流...原创 2018-07-19 14:18:08 · 1645 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- Camera Preview测试用例
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92说明:1.打开就预览 2. button用于控制是开启preview callback并保存为jpg源代码:package com.example.camerapreviewtest;import android.content.Context;import...原创 2018-06-01 10:49:38 · 2525 阅读 · 12 评论 -
[RK3288][Android6.0] 调试笔记 --- Camera实现Soft Resize
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92背景: 同一型号摄像头,由于供应商的更换导致支持的分辨率不是全部一致,而其中一个分辨率320x240在项目上就有需求。这种情况下只能通过软件来实现了。实现步骤: 1. 先在preview size中添加一个320x240的伪支持,因为不是硬件真正读到的。++/* 1803...原创 2018-03-02 11:23:40 · 1545 阅读 · 15 评论 -
[RK3288][Android6.0] 调试笔记 --- 相机无法拍照最大像素
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92现象: 一颗五百万像素的Sensor,在pc上可以使用5M拍照,但是在板子上显示的最大拍照像素是3M。分析: 理论上说,预览不一定能达到最大像素,但是拍照是肯定达到最大像素的。 另外看HAL层Log, 支持的拍照分辨率里也是有的,那么Camera APP在获取参数配置的时候必然也是...原创 2018-03-02 11:00:09 · 1087 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- 如何区分两颗相同的USB UVC Camera
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92问题:当系统接上两颗相同的UVC Camera后, 由于分辨率, PID/VID都一样,再加上系统初始化的先后不确定,这样HAL层就无法得知前后置摄像头的对应顺序了.分析:由于Camera接的是不同的USB bus, 比如A Camera接USB1, B接USB2原创 2016-12-06 16:28:10 · 6164 阅读 · 14 评论 -
[RK3288][Android6.0] Camera HAL层拍照编码成JPEG流程小结
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92camera_take_picture -> CameraHal_Module.cpp //CameraService收到客户端的请求后会调用HAL层的拍照接口. gCameraHals[rk_dev->cameraid]->takePicture -> //camera原创 2016-12-08 09:49:42 · 6433 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- 同时支持多颗Camera打开的问题
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92有遇到若干朋友在做Camera模块的时候说同一时间只能打开一颗Camera, 这是因为RK在HAL层把Camera最大的support number限制成了1.hardware/rockchip/camera/CameraHal/CameraHal_Module.h#原创 2016-12-08 11:07:06 · 10132 阅读 · 37 评论 -
[RK3288][Android6.0] 调试笔记 --- ECHI上的USB Camera无法打开
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92现象:引出的3个usb口,两个可以正常使用Camera, 一个无法打开.无法打开时HAL层会有如下error log:12-29 03:14:00.276 209 209 E CameraHal: camera_get_number_of_cameras(755): Op原创 2017-01-17 17:02:28 · 3372 阅读 · 9 评论 -
[RK3288][Android6.0] 调试笔记 --- PreviewCallback获取NV12格式数据
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92Camera preview callback的数据会送到 AppMsgNotifier::processPreviewDataCb(FramInfo_s* frame)中处理(前面文章有分析过流程),当前送上来的是android::CameraParameters::PIXEL_F原创 2017-01-17 17:30:56 · 2260 阅读 · 0 评论 -
[RK3288][Android6.0] Camera HAL ION 使用小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92CameraHal的ION实现主要在文件 CameraHal_Mem.cpp中, 提供了三种实现#define CAMERA_MEM_PMEM 0#define CAMERA_MEM_ION 1#define CAMERA_MEM_IONDMA 2目前定义的是CAME原创 2017-02-10 09:39:59 · 2606 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- Camera HAL固定fps的方法
Platform: RK3288OS: Android 6.0Kernel: 3.10.92为了降低cpu使用率, 就从降低fps入手.理论上可以通过正常的ioctl接口去操作:CameraUSBAdapter.cpp:CameraUSBAdapter::initDefaultParameters(int camFd){...... memse原创 2017-02-10 09:58:14 · 5468 阅读 · 6 评论 -
[RK3288][Android6.0] 调试笔记 --- USB Camera旋转图像方法
Platform: RockchipOS: Android 6.0Kernel: 3.10.92HAL层修改:int camera_get_number_of_cameras(void){......if (ptr != NULL) { ptr++; camInfoTmp[cam_cnt&0x01].facing_info.orientation原创 2017-05-31 13:20:23 · 5283 阅读 · 4 评论 -
[RK3288][Android6.0] 调试笔记 --- Camera Preview原始数据帧dump
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92说明: 1. 默认关闭,通过设置property debug.camera.preview为1 来打开 2. /data/下的dump目录需要自己创建,权限设置为777或者是media用户 3. dump出来的数据不用工具直接可以查看 4. 每设置一次property会dump一帧,原创 2017-07-19 10:26:29 · 3134 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- UVC Camera jpg和yuv数据帧dump
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92diff --git a/CameraHal/CameraUSBAdapter.cpp b/CameraHal/CameraUSBAdapter.cppindex 2dcd1fa..fdca035 100644--- a/CameraHal/CameraUSBAdapter.cpp+++ b原创 2017-07-19 11:13:37 · 3333 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- Camera没有权限打开问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92其实这个问题的本质是音频引起的,但是一开始我往Camera方向查找了,因为测试报给我是说是Camera打开失败,于是我就搜关键字,查看Log:07-31 19:31:33.962 1152 1236 I CameraService: CameraService::connect call (P原创 2017-07-31 20:15:38 · 4579 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- 同时支持两颗USB UVC Camera
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92现象:平台是支持同时使用两颗USB Camera,但事实上打开的时候只有一个能正常工作.原因:在HAL层会根据USB的card name来设置当前是前置还是后置Camera:rk3288/hardware/rockchip/camera/CameraHal/C原创 2016-12-06 15:44:06 · 11540 阅读 · 23 评论