camera全景模式预览方向异常

   1.GPIO口,在第一次调试的时候,GPIO配置不正常的话,会导致进不了相机(/dev/目录下无相应节点video0,video1)。之后交换GPIO口,不影响进入相机,影响前后置成像方向;

   2.调试camera方向,主要是指board方向,ro.sf.hwrotation=0,后置设置成0度,前置设置成180度;

   3.调试camera驱动,查找控制mirror和upside的寄存器。以sp2518为例,P0:0x31

[7] Fix frame length 
[6] Upside down 
[5] mirror 
[4] PCLK inversion 
[3] binning_sel 
[2] 1/4 sub-sample: 800X600 
[0] 720p_sel 

注意其中的P0,.指的是存储在第0页上,由以下寄存器控制:P0:0xfd

[2:0] page select 
   000: page 0 
   001: pgae 1


因此,在驱动代码上更新寄存器0x31控制镜像和upside时,离它最近的0xfd寄存器值BIT0必须是0,改动才有效,一般在sensor_init_data里面改动,如果在此函数里有多处0x31,一般是以最后一个0x31为准,改前面的没有作用,因为后面的0x31又被覆写了。至于说0x31的值不确定的话,可以一个一个的尝试,毕竟只有四组值,尝试也不是很困难。

4.第一次打开相机默认开启的是前置还是后置,这个决定于前后置camera在board中的注册顺序,先注册的camera将被设置成默认开启的camera。

5.camera相机拍照和录像均正常,但是全景模式上下倒180度,而且使用CtsVerifier.apk测试camera的方向,发现前置摄像头第一个方向是一个倒立的成像。这两个问题同属于一类问题,就是camera驱动方向跟镜像设置的不对。我遇到的实际问题是这样处理的,系统方向是0度,那么我在内核中将camera方向也设置成了0度,然后找到控制驱动镜像的寄存器,按照说明进行逐个调试,最后一切显示正常。


你可能感兴趣的:(camera全景模式预览方向异常)