Camera2查看相機支持和設定的preview size、picture size和FPSRange的方法


通過如下方法dump camera service信息到dump.txt:

adb shell dumpsys media.camera > dump.txt

 

1. 查看相機支持的preview size和picture size

在dump結果中,搜索android.scaler.availableStreamConfigurations,出來的結果列表形式如下:

    [34 4032 3024 OUTPUT ]

    ...

其中,第1個參數為format,第2個參數為width,第3個參數為height,第4個參數為streamType(preview看OUTPUT類型)。

主要的format為:

    HAL_PIXEL_FORMAT_RAW16 = 32;

    HAL_PIXEL_FORMAT_BLOB = 33;

    HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 34;

    HAL_PIXEL_FORMAT_YCbCr_420_888 = 35;

    HAL_PIXEL_FORMAT_RAW_OPAQUE = 36;

    HAL_PIXEL_FORMAT_RAW10 = 37;

    HAL_PIXEL_FORMAT_RAW12 = 38;

HAL_PIXEL_FORMAT_BLOB表示是jpeg stream,對應的size即平時所說的picture size; HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED表示preview stream,對應的size即平時所說的preview size.

例如,[34 4032 3024 OUTPUT ]表示preview size支持4032x3024. [33 4032 2016 OUTPUT ]表示picture size支持4032x2016.

所以availableStreamConfigurations的輸出結果中,所有format=34且streamType=OUTPUT的size即為相機支持的preview size.

同理,所有format=33且streamType=OUTPUT的size即為相機支持的picture size.

 

2.查看相機支持的FPS

在dump結果中,搜索android.control.aeAvailableTargetFpsRanges,出來的結果列表形式如下:

    [7 30 30 30 ]

    ...

數據中每2個一組構成一個FPSRange,其中第1個為FPSRange的下限,第2個為FPSRange的上限。

例如,[7 30 30 30 ]表示相機支持的FPSRange為[7 30]和[30 30].

 

3.查看當前打開的相機及其設置

在dump結果,搜索CameraDeviceClient,出來的結果類似:

  Device 3 is open. Client instance dump:

    Client priority score: 0 state: 2

    Client PID: 7358

    Client package: com.android.camera

  CameraDeviceClient[3] (0xebbc0500) dump:

CameraDeviceClient[3]中括號里的“3”即為當前打開的camera id.

要查看相機當前的設置,只需在該client的“Dumping camera metadata array”中根據對應的key搜索即可。

例如:查看相機當前設置的FPS

在dump結果中,搜索android.control.aeTargetFpsRange,出來的結果即為當前的FPSRange.

例如,[7 30 ]表示當前設定的FPSRange為[7 30 ].

 

4.查看相機當前設置的preview size和picture size

在dump結果中,搜索Stream configuration,Stream configuration的輸出類似:

    Stream[0]: Output

      Consumer name: SurfaceTexture-1-7358-0

      State: 4

      Dims: 1920 x 1080, format 0x22, dataspace 0x0

    ...

    Stream[1]: Output

      Consumer name: ImageReader-3840x2160f100m2-7358-1

      State: 4

      Dims: 3840 x 2160, format 0x21, dataspace 0x8c20000

其中stream 0的format為0x22=34,這個即為preview stream,其size為1920 x 1080.

其中stream 1的format為0x21=33,這個即為jpeg stream,其size為3840 x 2160.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM