资料文稿教案成果allwinner_第1页
资料文稿教案成果allwinner_第2页
资料文稿教案成果allwinner_第3页
资料文稿教案成果allwinner_第4页
资料文稿教案成果allwinner_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 页 共 79 页文档履历版本号日期制/修订人制/修订V1.02015-10-13初版V1.12016-03-16完善 wifi 部分内容V2.02016-08-01完善其他内容第 2 页 共 79 页1.1. SW1.1Camera【FAQ01】sdk 里面设置帧率的【solution】有两种:1、S_FMT 函数写寄存器设置;2、在 hal 调用 setFrameRate 设置,最后实现是在 S_PARM 函数中设置,不过有的驱动并没有设置对 S_PARM 函数实现目前没有从 apk 上面实现设置帧率的 api【FAQ02】第【description】为适应Camera APK 成像

2、倒立apk,将 ro.sf.rotation 调整为 90。让其自带 camera apk 方向一致,然后整体调节 camera.cfg 文件将其调正。但是这样引起了第【solution】的 camera apk 方向倒立由于有一些 APK 没有获取系统旋转的方向,仅仅获取 sensor 出来的方向,这时候修改 vflip、hflip 和camera.cfg 三种组合即可解决问题。由于一些 APK 没有获取 cam a.cfg 里面的方向,这样修改可能导致其他 APK 方向转 90 度。不建议这样处理,具体问题具体分析【FAQ03】摄像头添加闪光灯的功能【solution】闪光灯的功能我们平台

3、都提供了接口,需要客户在驱动文件按照拍照的逻辑调用 config_flash_mode 接口即可【FAQ04】A23/A33/A83T 支持的 came a 型号【description】A23/A33/A83T 支持的 camera 型号【solution】看 AVL【FAQ05】快拍预览和拍出的【description】不一致快拍预览和拍出的【solution】不一致的以及如何解决此问题是由于做全屏拉伸显示引起,除非不做全屏处理,或者预览的分辨率很接近 LCD 分辨率【FAQ06】人脸识别功能【description】人脸识别失败可能的【solution】以及如何解决人脸识别失败在于角度上

4、问题,在 apk onOrientationChanged 函数中做角度转换【FAQ07】预览出现拉伸现象【description】第 3 页 共 79 页预览会出现拉伸现象的解决步骤【solution】拉伸的问题可能两种:1、模组方向打反,应该严格按照物理2、给到 surface 的比例和数据上报的比例+0 度 sensor,物理竖屏+90 度(270 度)sensor很大的差距,情况下为 4:3。此问题需要确保 surface和 sensor 输出的数据比例一致,可以更改输出的分辨率可能可以修改,具体情况具体分析【FAQ08】如何实现 camera 全屏 preview【descripti

5、on】如何实现 camera 全屏 preview【solution】androidL 之前的 APK 默认为全屏显示,如果需要修改预览为实际的输出分辨率,不同的平台提供了补丁【FAQ09】sensor 兼容相关【description】1、如何实现 sensor 兼容;2、两颗 sensor 单独点是 OK 的,兼容后只能读到一颗 sensor【solution】此问题是 pwdn 在切换的时候,相应的 pwdn 没有拉起来引起的,可w n 入手研究【FAQ10】如何通过修改配置来【description】打开或者关闭闪光灯如何通过修改配置来【solution】打开或者关闭闪光灯我们平台闪关

6、灯功能接口都已经实现的 cam ra.cf 里面可以通过 used_flash_mode闪光灯使用,A83 的还可以通过_FLASH_FUNC_宏定义闪光灯是否使用【FAQ11】如何调整闪光灯在 auto 模式下的打闪阈值【description】如何调整闪光灯在 au o 模式下的打闪阈值【solution】此阀值是根据具体的情况而已的,可以修改sensor 驱动文件check_to_flash 函数中的flash_auto_level 值【FAQ12】QQ 或者【description】聊天,图像翻转 90 度QQ 或者聊天,图像翻转 90 度【solution】由于 QQ 版本更新,此问

7、题分为很多种情况。目前腾讯已经不再维护物理的 QQ 版本,统一为竖屏版本,已的补丁,可以在补丁基础上修改 gsensor 的方向就能调整翻转问题【FAQ13】调试摄像头步骤【description】调试摄像头有哪些步骤【solution】第 4 页 共 79 页一个新 sensor 模组,必须先让 sensor 进入工作模块,此时就要求上电时序,上电时序可以从 datasheet 获得。步骤:1、启动三压2、使能 mclk根据模组要求实现 reset 和 pwdn 的操作 ,此项经常出问题以上步骤按照 datasheet 操作之后 sensor 就可以工作了,接下来遇到3、的是 I2C 通讯问

8、题,I2C 通讯问题可能有以下:1、必须让 sensor 工作起来,即满足上电时序 并使能 mclk2、确定 device address ,此 addr 也能在 sensor datasheet 中获得,需要注意的是 I2C addr 取决于硬件连接3、确保客户配置 reset 和 pwdn GPIO 正确,可通过操作寄存器确认4、A33 和 A83 上面设置 gpio 电,会再次进行设置输入输出状态,已有补丁5、以上操作都验证 OK 的情况下,用示波器看看 I2C 波形,波形幅度是否正常、波形是否正常,可以用过修改硬件、增强驱动能力、修改 I2C 通讯速率做相关的调节【FAQ14】打开摄像

9、头黑屏【description】平台已经调通某款 sensor,但打开的时候摄像头出现黑屏的现象【solution】此现象可分为两种情况:1、sensor有数据过来并且主控已接收数据,但是预览还是黑屏。此时可通过拍照看看有没有数据,如果有数据可定位数据没有给到 LCD 部分,这时候需要跟踪 ha dware 数据的流程,是否丢给显示 buffer。2、sensor 有数据,但主控端没接收到:提示 buffnotady 的时候,都是主控没接收到数据。此时可检查 PCLK 电压幅度是否达到、行场同步信号是否设置正确、采样沿是否设置正确等【FAQ15】androidL 切换录像和拍照模式问题【des

10、cription】androidL 录像和拍照模式切换的时候,前后摄像头也切换了【solution】此问题是 androidL 共性问题,也不算是问题,只是 androidL 的逻辑思维和之前 android 版本的逻辑不同而已。不做修改【FAQ16】前后 camera 相同调试【description】客户前后两个相同的摄像头,经常只能识别其中一个【solution】前后相同摄像头调试难点有两点:1、V4L2为 V4L2即可时,I2C地址引起,这时候可以虚拟一个地址,避开相同地址成2、切换摄像头的之后,必须正确址好相应的 pwdn 做区分,I2C 通讯的时候用的还是真实的 I2C地【FAQ1

11、7】摄像头绿屏【description】打开摄像头,出现绿屏的现象【solution】第 5 页 共 79 页摄像头有绿屏可能两种:1、LCD 显示问题:预览绿屏拍照正常说明是 LCD 显示支持不够好,会出现绿屏的现象,已有补丁问题,之前有一些平台对 sensor 输入 YUV 顺序2、sensor 输出的顺序和主控要求输入的顺序不一致也会导致绿屏或者红色和蓝色对调【FAQ18】USB camera 无法打开【description】USB camera 无法打开【solution】调试 USB camera 需要注意几点:1、必须使用 HOST 口,不能 OTG 当成 HOST 使用,因为带

12、宽不够2、camera.cfg 需要根据生成的节点做调整,默认生成的3、平板部门在开发的时候,没有对 USB camera 进行维护(节点不是固定的公版功能),盒子、行车仪部门有专门的维护,当平板 SDK 兼容不情况,可以用盒子或者行车仪 sdk 试试。【FAQ19】第【description】APK 打开 camera 出现很多个重叠的小窗口第APK 打开 camera 出现很多个重叠的小窗口【solution】此问题已有补丁,是显示部分兼容问题【FAQ20】二维码扫描不出【description】调用摄像头无法识别二维码【solution】此问题是摄像头获取的时候问题 看看扫描二维码的时候

13、,是否出现几条线重合在一起,如果这样是不可能识别到二维码的,需要重新调节摄像头驱动【FAQ21】客户写 APK 预览或者第【description】APK 预览出现的现象客户写 APK 预览或者第【solution】此现象主要在于 hardwAPK 预览出现的现象对数据的处理,在 A31 之前的平台上面,一些分辨率做的 memory copy 动作很多,导致回调的效率不够的主要花的时间在哪一步,已有补丁,如果还类似的问题,可以跟踪 hardware 数据流程,【FAQ22】关于 DPI 计算及 DPI 与分辨率的适配【description】关于 DPI 计算及 DPI 与分辨率的适配【sol

14、ution】dpi 表示每英寸的像素点数 dpi=(H_pixel×H_pixelV_pixel×V_pixel)/inc在 androidpackagesappsCamera2resdrawable 这 个 目 录 下 图 标 的 适 配 和分 辨 率 及ro.sf.lcd_density 的大小有关,出现点击应用程序图标时上报找不 到资源时,可以根据分辨率修改ro.sf.lcd_density , 或 者 增 加 对 应 的 .png第一步:图 标 及 资 源 文 件 。- a/android/packages/apps/Camera2/res/values/array

15、s.xml第 6 页 共 79 页+ b/android/packages/apps/Camera2/res/values/arrays.xml<array name="camera_mode_shutter_icon"><item>drawable/ic_capture_camera</item>-+<item>drawable/ic_capture_<item>drawable/ic_capture_</item&am

16、p;gt;_1</item><item>drawable/ic_capture_refocus</item> <item>null</item><item>drawable/ic_capture_panorama</item>第二步:把_1.xmlpackages/apps/Camera2/res/drawable/ic_capture_.xml改名为ic_capture_【FAQ23】关于 came

17、ra 的时钟及帧率问题【description】关于 camera 的时钟及帧率问题【solution】1、在 androiddevicesoftwinneroctopus-f1configsmedia_profiles xml 中将 maxFrameRate 根据 IC 手册适当调大。2、根据 sensor 的手册,将 VTS 和 HTS 的值调小。注:1、camera 的时钟主要是 mclk 和 pclk,mclk 由平台这边配置 在代码中#define MCLK (24*1000*1000)会进行相应设置,pclk 由 sensor 内部。2、sensor 输出的帧率与 pclk 成正比

18、。在 mclk 不变的情况下 pclk 与 vts、hts 成反比,所以为了提高sensor 的输出帧率可以固定 vts 和 hts 中 个,将另外 个降低(通过配置 sensor 的寄存器实现)。3、代码中 androiddevicesoftwinner octop s-f1 nfigsmedia_profiles.xml 会对录像支持的最大分辨率及帧率进行设定。<EncoderCapname="h264" e abled= rue"minBitRate="64000" maxBitRate="800000 " mi

19、nFrameWidth="176" maxFrameWidth "4096" minFrameHeight="144" max rameHeight="4096"minFrameRate="1"maxFrameRat ="30" />【FAQ24】camera 对焦问题【description】camera 对焦问题【solution】根据 sensor 的手册,在需要的分辨率寄存器组中将对焦模式设置成1、代码中对焦方式的设置androiddevicesoftwinne

20、roctopus-f1configscamera.cfgused_focus_mode=0需要的。key_support_focus_mode=auto,infikey_default_focus_mode=auto,macro,fixed2、sensor 寄存器中必须设置自动对焦或者手动对焦模式,类似下面 s5k4ec 对对焦模式的设置。0xFCFC,0x0028,0x002A,0xD000,0x7000,0x028E,/ write 7000 028E, REG_TC_AF_AfCmdParam第 7 页 共 79 页【FAQ25】录像出来的【description】花屏录像出来的花屏确认

21、是否打上以下补丁:add_source_size_for_codec_scaler.patch,补丁用于源进入编码时的压缩【solution】补丁如附件 add_source_size_for_codec_scaler.patch【FAQ26】A64/A83-6.0 摄像头拍照锯齿感严重【description】A64/A83-6.0 摄像头拍照锯齿感严重【solution】如附件:libvencoder.so【FAQ27】A83T 可以用 raw sensor,A33、A64 只能使用 yuv sensor【FAQ28】A83T 平台使用 OV8858 模组注意事项【description】

22、A83T 平台使用 OV8858 模组注意事项【solution】(1) 确定 ov8858 具体, OV 很多 sensor 都有小版本, 对应sdk 里面有ov8858_4lane.c 、ov8858_r2a_4lane.c 还有 ov8858.c当前我们主要使用 ov8858_4lane.c 和 ov8858_r2a 4 ne.c 这两个驱动。(2)ov8858 模组会加外置马达,外置马达需要添加相应的驱动。拿公板为例,对应配置文件vip_dev0_afvdd vip_dev0_afvdd_vol vip_dev0_act_used vip_dev0_act_name vip_dev0_

23、act_slav 对应 rc 文件:insmod /system/ven:= "axp81x_dldo3"= 2800000= 1= "dw9714_act"= 0x18or/modules/dw9714_act.ko(3)需要调试 isp 参数前必须是先把对焦马达调好以后再提交调试需求【FAQ29】android5.1 锁屏界面下打开 camera 会报错【description】android5.1 锁屏界面下打开 camera 会报错【solution】diff-gita/camera2/portability/src/com/android/ex

24、/camera2/portability/AndroidCamera2AgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.javaold mode 100644new mode 100755index 2fc4ad3.ea7ea7d-a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java第 8 页 共 79 页+b/camer

25、a2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java-267,7+267,7classAndroidCamera2AgentImpl extends CameraAgent mCameraProxy = null; mPersistentSettings = null; mActiveArray = null; mActiveArray = null;if (mPreviewSurface != null) mPreviewSurface.release();mPreviewSurf

26、ace = null;-+-669,6+669,14 class AndroidCamera2AgentImpl extends CameraAgent public CameraSettings buildSettings(AndroidCamera2Capabilities caps) try +if(mActiveArray = null)Log.e(TAG, "get mActiveArray againbyAaron.Lin");CameraCharacteristicsprops=mCameraManager.getCameraCharacteristics(m

27、CameraId);+ mActiveArray =+ eristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);props.get(CameraCharact+return new AndroidCamera2Settings(mCamera,CameraDevice.TEMPLATE_PREVIEW,mActiveArray,mPreviewSize,mPhotoSize); cat h (CameraAccessException ex) 【FAQ30】A64 平台调试 gs5604, si-i2c 不通【description】A64 平台调试 gs5604,c

28、i i2c 不通。【solution】需要修改 csi-i2c 的 clk 速率,将默认的 400k 改为 300k/linux-3.10/drivers/media/platform/sunxi-vfe/csi_cci/bsp_cci.c void bsp_csi_cci_init(unsigned int sel)unsigned char div_coef2; csi_cci_reset(sel); csi_cci_enable(sel);cci_cal_div(400*1000, div_coef); csi_cci_set_clk_div(sel, div_coef); csi_cc

29、i_set_pkt_interval(sel, 16);csi_cci_set_ack_timeout(sel, 16);csi_cci_set_trig_dly(sel, 0);/需要把 400*1000 改为 300*1000第 9 页 共 79 页cci_pad_en(sel);A64 和 A33、A83T 修改 csi-i2c 速率都是在相同的函数接口里。【FAQ31】A64-安卓 6.0-SDK2.1 对焦卡死补丁【description】A64-安卓 6.0-SDK2.1 cts 测试卡死补丁【solution】diff -git a/drivers/media/platform/

30、sunxi-vfe/vfe.c b/drivers/media/platform/sunxi-vfe/vfe.c old mode 100644new mode 100755index f0e1181.a7a8480- a/drivers/media/platform/sunxi-vfe/vfe.c+ b/drivers/media/platform/sunxi-vfe/vfe.c-2959,11int ret = 0;,9 static int vfe_s_ctrl(struct v4l2_ctrl *ctrl)struct actuator_ctrl_word_t vcm_ctrl; st

31、ruct v4l2_control c;unsigned long flags = 0; c.id = ctrl->id; c.value = ctrl->val;vfe_dbg(0,"s_ctrl: %s, set value: 0x%xn" ctr ->name ctrl->val); spin_lock_irqsave(&dev->slock, flags);if(dev->is_isp_used && dev->is_bayer_ra ) switch (ctrl->id) case V4L2_

32、CID_BRIGHTNESS:-3176,7,6 static int vf _s_c rl(struct v4l2_ctrl*ctrl)if (ret < 0)vfe_warn("v4l2 se sorctrl fail!n");spin_unlock_i qrestore( d v->slock, flags); return ret;-#ifdef CONFIG_COMPAT【FAQ32】Camera 预览/拍照方向异常解决【description】Camera 预览/拍照方向异常解决【solution】:(1)修改 camera.cfg 的角度值,分前后

33、置摄像头; camera orientation (0, 90, 180, 270);camera_orientation = 90/可选择 0, 90, 180, 270(2)(以 A64 为例)修改 sys_config.efex 的镜像值后置:第 10 页 共 79 页csi0_dev0_vflip csi0_dev0_hflip 前置: csi0_dev1_vflipcsi0_dev1_hflip=00/上下镜像/左右镜像=00【FAQ33】A64 闪光灯需求说明【description】A64 闪光灯需求说明【solution】参考 SDK 中 gc2155.c 添加补光灯相应代码。

34、A64 闪光灯部分的代码放在 flash_light 目录中。(1)sys_config.fex 配置说明如下:csi0_dev0(/1)_flash_used 配为 1;csi0_dev0(/1)_flash_type 用来区分 io还是 pmu,为 2 时表示 pmu根据 flash 类型还需要配置 LED 的 IO 或者 PMU;如果是仅有 ON/OFF的补光灯 driver,将 IO 配置到 csi_dev(/1)_flash_en 项。(2)、camera.cfg 配置used_flash_mode 配成 1以 pmu为例:csi0_dev0_flash_used csi0_dev0

35、_flash_type csi0_dev0_flvddcsi0_dev0_flvdd_vol=12"vdd-csi-led" 3300000regulator9= "axp81x_aldo1 non vdd si- d/根据硬件接在 pmu 的哪ldo 上填写【FAQ34】解决 A64-V2.1 不使用闪光灯时出现的空指针卡死补丁【description】解决 A64-V2.1 不使用闪光灯时出现的空指针卡死补丁【solution】diff-gita/drivers/media/platform/sunxi-vfe/flash_light/flash.cb/dri

36、vers/media/platf/sunxi-vfe/flash_light/flash.c index 27162ef.95214b6 100755- a/drivers/media/platform/sunxi-vfe/flash_light/flash.c+ b/drivers/media/platform/sunxi-vfe/flash_light/flash.c -154,12 +154,18 int io_set_flash_ctrl(struct v4l2_subdev *sd, enum sunxi_flash_ctrl ctrl) int sunxi_flash_check_

37、to_start(struct v4l2_subdev *sd, enum sunxi_flash_ctrl ctrl)-+struct vfe_dev *dev=(struct vfe_dev *)dev_get_drvdata(sd->v4l2_dev->dev); struct vfe_dev *dev = (sd = NULL) ? NULL :(struct vfe_dev *)dev_get_drvdata(sd->v4l2_dev->dev);unsigned int flag, to_flash; if(!flash_gbl->flash_used

38、) return 0;+ if (NULL = sd) 第 11 页 共 79 页+vfe_err("flash sd is NULL!n"); return -1;if (flash_gbl->fl_info.flash_mode =V4L2_FLASH_LED_MODE_FLASH) to_flash = 1; else if (flash_gbl->fl_info.flash_mode =V4L2_FLASH_LED_MODE_AUTO) -183,12 +189,19 int sunxi_flash_stop(struct v4l2_subdev *sd

39、) if(!flash_gbl->flash_used)return 0;+if (NULL = sd) vfe_err("flash sd is NULL!n"); return -1;if(flash_gbl->fl_info.flash_mode != V4L2_FLASH_LED_MODE_NONE) io_set_flash_ctrl(sd, SW_CTRL_FLASH_OFF);return 0;- static int config_flash_mode(struct v4l2_subdev *sd, num v l2_flash_led_mode

40、 flash_dev_info *fls_info)+static int config_flash_mode(struct v4l2_su dev sdmode, struct+enum v4l2_flash_led_mode mode,struct flash_dev_info *fls_inf )if(fls_info=NULL) -267,12 +280,18 static int unxi_flash_g_ctrl(struct v4l2_subdev *sd, struct v4l2_control*ctrl)int sunxi_flash_info_i it(struct v4l

41、2_subdev *sd)-+struct vfe_dev *dev=(str ct vfe_dev *)dev_get_drvdata(sd->v4l2_dev->dev);struct vfe_dev *dev(sd = NULL) ? NULL :(struct vfe_dev *)dev_get_drvdata(sd->v4l2_dev->dev);flash_gbl->flash_used = dev->flash_used; if(!flash_gbl->flash_used)return 0;+if (NULL = sd) vfe_err

42、("flash sd is NULL!n"); return 0;flash_gbl->fl_info.dev_if=0;flash_gbl->fl_info.en_pol=FLASH_EN_POL; flash_gbl->fl_info.fl_mode_pol=FLASH_MODE_POL;第 12 页 共 79 页【FAQ35】解决 A64-V2.1 使用闪光灯时出现的空指针卡死补丁【description】解决 A64-V2.1 使用闪光灯时出现的空指针卡死补丁【solution】diff -git a/drivers/media/platform/

43、sunxi-vfe/flash_light/flash.c b/drivers/media/platform/sunxi-vfe/flash_light/flash.cindex 95214b6.e64a0a1 100755- a/drivers/media/platform/sunxi-vfe/flash_light/flash.c+ b/drivers/media/platform/sunxi-vfe/flash_light/flash.c -280,17 +280,20 static int sunxi_flash_g_ctrl(struct v4l2_subdev *sd, struc

44、t v4l2_control*ctrl)intsunxi_flash_info_init(struct v4l2_subdev *sd)+if(NULL=sd)vfe_err("flash sd is NULL!n"); return 0;struct vfe_dev*dev = (sd = NULL) ? NULL(struct vfe_dev *)dev_g _drvd ta(sd->v4l2_dev->dev);diff -git a/drivers/media/platform/sunxi-vfe/vfe.c b/dri ers/media/platfo

45、rm/sunxi-vfe/vfe.c old mode 100644new mode 100755index f0e1181.c3b0422- a/drivers/media/platform/sunxi-vfe/vf c+ b/drivers/media/platform/sunxi-vfe/vfe.c-4142,7,8 static void p obe_ ork_handle(struct work_struct *work)sunxi_mipi_get_s bdev(&dev->mipi_sd, dev->mipi_sel); sunxi_mipi_reg ster

46、 subdev(&dev->v4l2_dev, dev->mipi_sd);/*Reister flash subdev*/-+ifif11=dev->flash_used) dev >ccm_cfg0->flash_used | 1=dev->ccm_cfg1->flash_used) printk("sunxi_flash_get_subdevn"); sunxi_flash_get_subdev(&dev->flash_sd, dev->flash_sel); sunxi_flash_registe

47、r_subdev(&dev->v4l2_dev, dev->flash_sd);【FAQ36】Camera-Hal 增加对水平镜像、上下镜像的 ctrl【description】Camera-Hal 增加对水平镜像、上下镜像的 ctrl【solution】diff -git a/hardware/camera/V4L2CameraDevice2.h b/hardware/camera/V4L2CameraDevice2.h index 0025e3a.bb1e689 100755- a/hardware/camera/V4L2CameraDevice2.h+ b/hardw

48、are/camera/V4L2CameraDevice2.h -273,6 +273,8 public:int tryFmtSize(int * width, int * height); / check if driver support this size第 13 页 共 79 页int int+setFrameRate(int rate); / set frame rate from camera.cfggetFrameRate(); int setint set/ get v4l2 device current frame rate Hflip(bool fliped);Vflip(b

49、ool fliped);diff-git a/hardware/camera/V4L2CameraDevice2.cpp b/hardware/camera/V4L2CameraDevice2.cppindex 72e82c3.815a8d0 100755- a/hardware/camera/V4L2CameraDevice2.cpp+ b/hardware/camera/V4L2CameraDevice2.cpp+int+int+V4L2CameraDevice:setHflip(bool fliped)F_LOG;int ret = -1;struct v4l2_control ctrl

50、; ctrl.id = V4L2_CID_HFLIP; if(fliped = 1)ctrl.value = 1;elsectrl.value = 0;ret = ioctl(mCameraFd, VIDIOC_S_CTRL, &ctl);if (ret< 0)LOGD("setHflip failed %s",trerror(errno);elseLOGD("setreturn ret;Hflip ok ;V4L2CameraDevice:setV li(boo fliped)F_Li t strGret = -1;t v4l2_control c

51、trl;ct l.id = V4L2_CID_VFLIP; if(fliped = 1)ctrl.value = 1;elsectrl.value = 0;ret = ioctl(mCameraFd, VIDIOC_S_CTRL, &ctrl);if (ret< 0)LOGD("setVflip failed, %s", strerror(errno);elseLOGD("setreturn ret;Vflip ok");还需要在 sensor 驱动中做对应的修改,而驱动需要根据平台使用内核版本会有所不同,A33/A83T 需要只在 sen

52、sor 驱动中第 14 页 共 79 页实现具体的镜像接口,而 A64 还需要对 s_ctl 的 handler 做初始化,具体可以参考其它 s_ctl【FAQ37】A64 7.0【description】负方向无作用补丁A64 7.0负方向无作用补丁【solution】diff-gita/drivers/media/platform/sunxi-vfe/vfe.cb/drivers/media/platform/sunxi-vfe/vfe.c index a7a8480.fbadbe8 100755- a/drivers/media/platform/sunxi-vfe/vfe.c+ b/d

53、rivers/media/platform/sunxi-vfe/vfe.c -3167,6,13 static int vfe_s_ctrl(struct v4l2_ctrl *ctrl)sunxi_flash_stop(dev->flash_sd);ret = v4l2_subdev_call(dev->sd, core, s_ctrl, &c); break;+case V4L2_CID_AUTO_EXPOSURE_BIAS:ret = v4l2_subdev_call(dev->sd, core, s_ctrl, &c); printk("hx

54、l = ctrl->value=%d =n",c.value);dev->ctrl_para.exp_bias = c.value;default:ret = v4l2_subdev_call(dev->sd, core, break;s_ctr , &c) -4021,6,18 static const sructv4l2_ctrl_configcustom_ctrls=.q.flags,+=sensor_info_type,V4L2_CTRL_FLAG_VOLATIL+;.ops.id =.name.type=&vfe_ctrl ops,V4L2

55、_CID_AUTO_E POSURE_BIAS,= "Auto Exposure, Bias",= V4L2_CTRL_TYPE_INTEGER,.min = -4,.max = 4,.step = 1,.def = 0,static const s64 iso_q50, 100, 200, 400, 800, = -4033,8,9 static int vfe_init_controls(structv4l2_ctrl_handler *hdl)第 15 页 共 79 页struct v4l2_ctrl *ctrl; unsigned int i, ret = 0;-+v4l2_ctrl_handler_init(hdl, 37 +ARRAY_SIZE(custom_ctrls);/v4l2_ctrl_handler_init(hdl, 37v4l2_ctrl_handler_init(hdl, 36 + ARRA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论