1. 程式人生 > >camera全景模式預覽方向異常

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度,然後找到控制驅動映象的暫存器,按照說明進行逐個除錯,最後一切顯示正常。