Repaces them with just doing the error check,
and a loop for available characteristic keys.
BUG: 29872714
Change-Id: Idc48c5c51ef081dc4a2d380e2d23ee17347e3115
As part of this, refactored characteristic initialization into its own
function so it can be used by both templates and static info.
BUG: 29221795
Change-Id: I88bb2e6a96256e3641c7c5d387769880b260535f
Fills in initial values for all required static info
fields for LIMITED devices. Currently fakes entries
that will eventually be queried from the device (open
bug https://b/29394024).
BUG: https://b/29214526, https://b/29221641
Change-Id: I6b4bfa172c882df22159da63378902cea7cc76fd
Since V4L2CameraHAL now populates its list of cameras,
also added a necessary piece of metadata that was
causing cameraservice to crash.
BUG: 29160300
TEST: Ran on rpi3. HAL finds dev/video* nodes. When a
sym link (/dev/video5 -> /dev/video0) was added, the HAL
correctly did not add a 3rd device.
Change-Id: I95656ac9c062b193c12712b1c73e888bf1f1a961
Decent outline of an initial HALv3. Still a lot to be filled in.
Adapted from the reference implementation in libhardware.
BUG: 29006356
TEST: Ran simple test program. Connects to the HAL and then
fails because there are no cameras (expected behavior right now).
Change-Id: I11c7e00dca1bbb6ade6b5a0f55fedac3d2d01695
The Metadata module segfaults when asked to initialize camera_info, upon
camera description request coming from framework.
This was caused by missing intialization of mData instance field.
Additionally, when intializing it with a template metadata, the
validation function return value was wrongly tested
Patchset 2: Do not init mData but let function flow take care of
replacing it after adding new data to it fails.
Change-Id: Iae228f0d66171ed3eac430186ced4d9b023f8de8
Signed-off-by: Jacopo Mondi <jacopo.mondi@linaro.org>
For use by Camera HAL libraries to perform one-time initialization
steps after the library is loaded.
Bug: 20016050
Change-Id: Ia01ae0eafcadece9124ac2cfcc3b1c3939352843
- Deprecates vendor tag specification in camera3 device.
- Moves vendor tag ops declaration to camera metadata library and
cleans up definitions.
- Updates the example HAL.
Change-Id: Ifb16bb0d4bbc896bc32d33dd150e7e174af57dad
Add* functions const to protect data being added.
Initiailze metadata object from a camera_metadata_t.
Remove template-specific constructor.
Add convenience "add1" method to abvoid stack-allocated data.
Construct templates manually (in ExampleCamera) from base.
Change-Id: I3201f61e9d32841ea7a769d69242b40d8727c02e
ExampleCamera represents a specific (e.g. front or back) camera device,
and contains all the device and logic for that device/sensor.
Change-Id: Iecc1a1d905501a66edb6e3994ff93d8761b82f8b
Now that libutils is outside of frameworks, use that for c++-style
scoped tracing and remove the temporary shim header.
Change-Id: I913767aed8ff70abb9299e7a7b318b24a25e23c1
Static camera characteristics can be queried on any device at any time.
Separate the locking for it from the rest of the device to eliminate any
contention between operations on the device and static characteristic
initialization.
Change-Id: I8076378699f274e70c6318e537df4758972de9db
The shutter callback timestamp should originate from the sensor itself,
since it knows exactly when the first line of the frame started
exposing. However, as a fallback (or in the CPU-painting case) query
CLOCK_BOOTTIME instead.
Change-Id: Id57c05525e9c575d009b9deb96a69557fccac16b
Metadata is currently only used for immutable persistent settings
(static camera characteristics, and the capture templates), but will be
used for dynamic metadata as well. Make it deleteable so we can
create/destroy these at will.
Change-Id: I7372b07b904d5a6b55453093712e0bb2675918b5
max_buffers and usage are read by the framework inside the struct used
to pass the stream configuration parameters; scribble our new
calculated values whever they are updated internally.
Adds logging to stream creation method (reuse/new).
Change-Id: I04e12880820571900f2ae80c27100f8aedcf9d02
Basic static metadata statically constructed from preprocessor passes
over an array of camera metadata tags.
Change-Id: I16ea9f4d68120d5a0bc010a4a67b0cbcd761329e
Adds a Stream object, and configureStreams support in parsing the
provided stream_array. Streams are naively setup for sync-less software
painting.
Change-Id: Ibbd90e3e2c7fa984dd5d2dcbd4da7bf4dad43aa1
This c++ helper class is normally provided by frameworks/native's
libutils, but cannot be used from the context of a hardware module. For
now just add the required functionality locally in the hardware module.
Change-Id: I5b399cbeb1c017a95baf19456dbf20569e677fbe
Refactor the camera module into a single CameraHAL object. Adds
set_callbacks, new in the v2.1 module API.
Change-Id: I4da677c28d7425f545f68998844fcfa4caf0feb9
Explicitly hide all symbols from being exported from the camera HAL
except the symbol required to load the module.
Change-Id: I940b24b8d3895f46e63df3c28e43b8cb012bd637
This is meant to be an example and a reference for device manufacturers
on how to build a new Camera v2 HAL. This first patch has basic
configuration and entry/exit.
Change-Id: Ib4166e2eadb813228af38ec31a1215940c070bbf