summaryrefslogtreecommitdiff
path: root/src/android/camera_device.cpp
AgeCommit message (Collapse)Author
2019-10-15libcamera: utils: Add hex stream output helperLaurent Pinchart
Add a utils::hex() function that simplifies writing hexadecimal values to an ostream. The function handles the '0x' prefix, the field width and the fill character automatically. Use it through the libcamera code base, and add a test. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
2019-09-05android: camera_device: Report available keysJacopo Mondi
Report the list of available static metadata tags (characteristicKeys), of supported controls (requestKeys) and produced metadata (resultKeys) in the static metadata pack. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
2019-09-05android: camera_device: Fix handling of request templateJacopo Mondi
According to the Android camera HALv3 documentation, the request template metadata pack should not be modified after it is returned to the camera stack from the HAL. Currently, the same metadata pack is used for all types of template request, without updating the capture intent there contained to match the requested template type, as correctly reported by the cros_camera_test test application. In order to avoid modifying the single request template already returned to the camera stack in order to update the capture intent it contains, create a map that associates a dedicated template to each supported capture type. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-09-05android: camera_device: Use the new CameraMetadata helper classLaurent Pinchart
Simplify the implementation of metadata handling in the CameraDevice class by using the new CameraMetadata helper class. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
2019-09-05android: camera_device: Use precise sizes for request templateJacopo Mondi
Use more opportune sizes, manually calculated, for the generated request template. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-09-05android: camera_device: Add missing tags in request templateJacopo Mondi
Add two missing tags from the request template generated by the HAL. The tags are reported as missing by the cros_camera_test tool. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-09-05android: camera_device: Remove tags from request templateJacopo Mondi
Remove metadata tags wrongly added to the request template constructed by the libcamera HAL. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-09-05android: camera_device: Use correct sizes for static metadataJacopo Mondi
Use more opportune sizes for the static metadata pack, and for the dynamic metadata sizes which where wrongly set to use the ones defined for the static pack. Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
2019-09-05android: camera_device: Add missing static metadataJacopo Mondi
Add all the static metadata keys part of the BC (backward compatible) metadata group, which represent the minimum requirement for devices supporting the LIMITED hardware level. Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
2019-08-19android: camera_device: Store static metadata in cacheLaurent Pinchart
The CameraDevice class has a mechanism to cache static metadata, but doesn't use it. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
2019-08-19android: Pass Camera shared pointer to CameraProxy by const referenceLaurent Pinchart
The CameraProxy is constructed with a Camera instance passed through a shared pointer. It forwards it to the CameraDevice constructor, which takes a reference used for the sole purpose of making an internal copy of the shared pointer. Both constructors can thus take a const reference instead of a value or a mutable reference. This optimises the constructors slightly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
2019-08-19android: Simplify thread RPC with Object::invokeMethod()Laurent Pinchart
Replace the manual implementation of asynchronous method invocation through a custom message with Object::invokeMethod(). This simplifies the thread RPC implementation. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
2019-08-12android: hal: Add Camera3 HALJacopo Mondi
Add libcamera Android Camera HALv3 implementation. The initial camera HAL implementation supports the LIMITED hardware level and uses statically defined metadata and camera characteristics. Add a build option named 'android' and adjust the build system to selectively compile the Android camera HAL and link it against the required Android libraries. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>