Commit graph

30 commits

Author SHA1 Message Date
Alex Ray
61f7a0c1c1 modules: camera: Abstract device-specific camera
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
2013-10-17 16:50:48 -07:00
Alex Ray
3e8a9fe5e0 modules: camera: Add android.jpeg.maxSize metadata
Change-Id: I0984b55df0adf8c60b07844003e97b5aac8ece3f
2013-10-14 15:58:02 -07:00
Alex Ray
ea80382be1 modules: camera: Update trace headers to libutils
Now that libutils is outside of frameworks, use that for c++-style
scoped tracing and remove the temporary shim header.

Change-Id: I913767aed8ff70abb9299e7a7b318b24a25e23c1
2013-10-14 15:56:43 -07:00
Alex Ray
0f82f5a73a modules: camera: Separate locking for static characteristics
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
2013-07-26 16:36:43 -07:00
Zhijun He
bd1468921e modules: camera: Fix build break due to metadata change
Change-Id: I085796569ea77336d32907ee2287ff7533b0c122
2013-07-18 17:59:30 -07:00
Alex Ray
9cd49c9c4e modules: camera: simplify metadata list traversal
keep traveling pointer local to the walking loop

Change-Id: I0038007d6e7a45e519b9b2162c674132477879cc
2013-07-09 12:59:42 -07:00
Alex Ray
764e442baf modules: camera: Shutter notify message support
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
2013-07-09 12:19:04 -07:00
Alex Ray
90c0af71f6 modules: camera: make Metadata a delete-able object
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
2013-07-03 14:32:59 -07:00
Alex Ray
77ecfd76d7 modules: camera: only wait on valid acquire fence
Change-Id: I4f51e509d86722c18308f4f1312ca3379cffd795
2013-07-03 14:32:59 -07:00
Alex Ray
2b286dab84 modules: camera: Write back stream parameters
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
2013-07-03 18:01:54 +00:00
Alex Ray
768216ee2c modules: camera: Fix stream type characterization
Type is now enum, not mask.

Change-Id: I264da26a457957a7659154e507970e0303c76e25
2013-07-03 18:00:21 +00:00
Alex Ray
0d2a5220ba modules: camera: Dirty metadata objects on update
Change-Id: I4fbd4ad919b855168e3ff5424613271b1fa907af
2013-07-03 10:55:04 -07:00
Alex Ray
89a82661e0 modules: camera: default request templates
Change-Id: I0a4b389e1850c10e12a65b3c8a5670c78c6746f7
2013-07-02 15:47:50 -07:00
Alex Ray
c6bf2f291d modules: camera: fix compiler warnings
Change-Id: Id1aa624d377776a7e37b52978664d30c927595be
2013-06-28 21:07:42 +00:00
Alex Ray
b0be1039c1 modules: camera: add get_camera_info support
Basic static metadata statically constructed from preprocessor passes
over an array of camera metadata tags.

Change-Id: I16ea9f4d68120d5a0bc010a4a67b0cbcd761329e
2013-06-28 13:52:50 -07:00
Alex Ray
083315c85b modules: camera: No-op result submission with request
Change-Id: If4e377ba0ac327cc02ac2b9765ce5d406b8960a8
2013-05-29 03:39:00 +00:00
Alex Ray
11bbeefaf9 modules: camera: Input buffer reprocessing scaffolding
Change-Id: I158ba833549aee47ca3be5673f6f5d33e455ef59
2013-05-29 03:38:20 +00:00
Alex Ray
bfcbd95a1f modules: camera: memoize request settings metadata
Change-Id: I19c3a6a55a42e60f627702cd4a995664a0dfc4d2
2013-05-29 03:36:19 +00:00
Alex Ray
8a8f86bbe6 modules: camera: Add buffer registration scaffold
Change-Id: Ic1d20dd7f93a0ca3cd2c3af3b33a7a9df47b5e89
2013-05-13 19:47:47 +00:00
Alex Ray
bcaf788434 modules: camera: Add Streams
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
2013-05-03 12:16:18 -07:00
Alex Ray
c16e56dd43 modules: camera: Add scoped trace helper
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
2013-04-29 14:16:57 -07:00
Alex Ray
005c9da544 modules: camera: remove unused variable
Change-Id: Ic21cd58a750411167ef4b060e8d3abc295edc83d
2013-04-29 14:16:57 -07:00
Alex Ray
af3a4617b4 modules: camera: fix dump log message
Change-Id: I2511653b3d2d21d03785ea220c760e2b65f0b035
2013-04-29 14:16:27 -07:00
Alex Ray
1f8af678c9 modules: camera: make Camera object id const
Change-Id: Ic36fa7c6193086aa6415647ff8fe59cc358dd99f
2013-02-28 15:41:55 -08:00
Alex Ray
a0ed4bead4 modules: camera: Camera v3 Devices
Default camera HAL statically allocates camera devices. Update camera
device to API v3.

Change-Id: Ic53ffcf3b746b9b4011b932e26dbb0f533cba554
2013-02-27 00:02:37 -08:00
Alex Ray
819cfd87ba modules: camera: Update to v2.1 camera module API
Refactor the camera module into a single CameraHAL object.  Adds
set_callbacks, new in the v2.1 module API.

Change-Id: I4da677c28d7425f545f68998844fcfa4caf0feb9
2013-02-26 15:26:26 -08:00
Alex Ray
bb13a3231d modules: camera: Hide HAL symbols DO NOT MERGE
Explicitly hide all symbols from being exported from the camera HAL
except the symbol required to load the module.

Change-Id: I940b24b8d3895f46e63df3c28e43b8cb012bd637
2013-02-26 15:08:45 -08:00
Alex Ray
ed6b8a7710 modules: camera: Add tracing
Change-Id: I00ee447e6b57bc57fd09b6e7d8c62cb07cb37cf0
2013-01-03 21:06:27 -08:00
Alex Ray
a48dd3fb34 modules: camera: Defer documenting API
Avoid duplicating the api docs in the example HAL, instead point to
canonical source for them.

Change-Id: If3f5acb7a73260248bd00ce01cb1c80f230f7188
2013-01-03 21:06:17 -08:00
Alex Ray
7ee0b7aac2 Reference Camera v2 HAL Implementation
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
2012-11-28 12:35:29 -08:00