summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-07-21 00:16:14 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-03 23:44:09 +0200
commitd4de037a8ae55f9ebf7e98782928b12490a33c1e (patch)
tree0c5cf56ee29896a128ad0cd6428512ba8dc1b568 /src
parent8c1fedcb782f4f3f5b23d30ab90f3db43a693b9a (diff)
android: camera_device: Map HAL RAW to libcamera RAW formats
Add a mapping from HAL RAW formats to the direct equivalent of libcamera formats. With this change it is possible to capture RAW images as long as the hardware can deliver frames in a format that is native to the HAL. More work is needed to deal with unpacked 8, 10 and 12 RAW formats as they don't directly map to a native HAL format. Nor do they belong in the RAW_OPAQUE category as the content format is generic and not uncommonly supported by hardware. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r--src/android/camera_device.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 8028d3e1..b7b6cb19 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -77,6 +77,50 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {
true,
"IMPLEMENTATION_DEFINED"
}
+ }, {
+ HAL_PIXEL_FORMAT_RAW10, {
+ {
+ formats::SBGGR10_CSI2P,
+ formats::SGBRG10_CSI2P,
+ formats::SGRBG10_CSI2P,
+ formats::SRGGB10_CSI2P
+ },
+ false,
+ "RAW10"
+ }
+ }, {
+ HAL_PIXEL_FORMAT_RAW12, {
+ {
+ formats::SBGGR12_CSI2P,
+ formats::SGBRG12_CSI2P,
+ formats::SGRBG12_CSI2P,
+ formats::SRGGB12_CSI2P
+ },
+ false,
+ "RAW12"
+ }
+ }, {
+ HAL_PIXEL_FORMAT_RAW16, {
+ {
+ formats::SBGGR16,
+ formats::SGBRG16,
+ formats::SGRBG16,
+ formats::SRGGB16
+ },
+ false,
+ "RAW16"
+ }
+ }, {
+ HAL_PIXEL_FORMAT_RAW_OPAQUE, {
+ {
+ formats::SBGGR10_IPU3,
+ formats::SGBRG10_IPU3,
+ formats::SGRBG10_IPU3,
+ formats::SRGGB10_IPU3
+ },
+ false,
+ "RAW_OPAQUE"
+ }
},
};