[libcamera-devel,0/5] android: camera_device: List JPEG/RAW correct resolutions
mbox series

Message ID 20200902104730.43451-1-jacopo@jmondi.org
Headers show
Series
  • android: camera_device: List JPEG/RAW correct resolutions
Related show

Message

Jacopo Mondi Sept. 2, 2020, 10:47 a.m. UTC
With the recent introduction of JPEG and RAW support in the libcamera
camera HAL, the initialization of formats and sizes wasn't properly
advanced.

1) We assumed all sizes were valid for JPEG format
2) RAW sizes were not enumerated, if not they luckily matched one of the tested
   resolutions

This small series aims to fix this by:
1) Claiming support for JPEG sizes based on the supported YCbCr_888 sizes
2) Enumerate the RAW sizes differently from the processed ones

The result is the following enumeration on Soraka cam0

camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000022 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000022 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000022 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000022 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000022 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000023 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000021 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000023 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000021 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000023 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000021 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000023 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000021 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000023 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000021 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1056x784 - 0x00000024 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 2112x1188 - 0x00000024 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 2112x1568 - 0x00000024 }
camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4224x3136 - 0x00000024 }

Thanks
  j

Jacopo Mondi (5):
  android: camera_device: Refuse unsupported formats
  android: camera_device: Generate JPEG sizes
  android: camera_device: Add debug to stream initialization
  android: camera_device: Break out size calculation
  android: camera_device: List RAW resolutions

 src/android/camera_device.cpp | 123 +++++++++++++++++++++++++++-------
 src/android/camera_device.h   |   7 ++
 2 files changed, 107 insertions(+), 23 deletions(-)

--
2.28.0

Comments

Kieran Bingham Sept. 2, 2020, 12:45 p.m. UTC | #1
Hi Jacopo

On 02/09/2020 11:47, Jacopo Mondi wrote:
> With the recent introduction of JPEG and RAW support in the libcamera
> camera HAL, the initialization of formats and sizes wasn't properly
> advanced.
> 
> 1) We assumed all sizes were valid for JPEG format
> 2) RAW sizes were not enumerated, if not they luckily matched one of the tested
>    resolutions
> 
> This small series aims to fix this by:
> 1) Claiming support for JPEG sizes based on the supported YCbCr_888 sizes
> 2) Enumerate the RAW sizes differently from the processed ones
> 
> The result is the following enumeration on Soraka cam0
> 
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000022 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000022 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000022 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000022 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000022 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000023 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 320x240 - 0x00000021 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000023 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 640x480 - 0x00000021 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000023 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1280x720 - 0x00000021 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000023 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1920x1080 - 0x00000021 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000023 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4160x3104 - 0x00000021 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 1056x784 - 0x00000024 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 2112x1188 - 0x00000024 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 2112x1568 - 0x00000024 }
> camera_device.cpp:508 '\_SB_.PCI0.I2C2.CAM0': { 4224x3136 - 0x00000024 }

Ayeee.

We really need a toString on those 21,22,23,24 values ...



> 
> Thanks
>   j
> 
> Jacopo Mondi (5):
>   android: camera_device: Refuse unsupported formats
>   android: camera_device: Generate JPEG sizes
>   android: camera_device: Add debug to stream initialization
>   android: camera_device: Break out size calculation
>   android: camera_device: List RAW resolutions
> 
>  src/android/camera_device.cpp | 123 +++++++++++++++++++++++++++-------
>  src/android/camera_device.h   |   7 ++
>  2 files changed, 107 insertions(+), 23 deletions(-)
> 
> --
> 2.28.0
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>