|Age||Commit message (Collapse)||Author||Files||Lines|
camera_metadata packets are transferred across process
boundaries with Parcel::readBlob / Parcel::writeBlob calls
so we should make sure they have a consistent layout across
32 and 64 bit processes. In this change :
- Replace size_t members with uint32_t members.
- Remove the "void*" user pointer which is no longer required
Also fixes warnings and changes the build rule from
BUILD_EXECUTABLE to BUILD_NATIVE_TEST, so that the binary
doesn't get installed under /system/bin.
(cherry-picked from commit commit 550458b2e2ba280030d1774395f3062a3d9af01)
clone_camera_metadata fails at validation during camera start, then crashes
android.colorCorrection.transform was updated to rational type in metadata
Also cleanup the code a little bit.
Adds methods so the framework can enumerate the entire set of vendor
tags supported on a platform.
This is particularly useful when accepting copied metadata from another process,
since it could put whatever it want into the binder parcel.
* camera_metadata_rational_t was only aligning to 4 bytes, we need to align to 8
* add an automated unit test to verify alignment for each type of data
- Use internal offsets instead of pointers for the entry and data
- Add test to verify memcpy works and doesn't alias data.
- Remove support for forward-compatible reserved space handling, given
that it's unlikely to be useful
- When a metadata entry needs to overflow into the data buffer, make
sure the starting offset is aligned to the maximum needed by all the
- Bounds check the data buffer size when adding a new entry
- Add new test for the bounds check
- Print out doubles correctly.
This is useful for associating a metadata buffer handed off to a third
party with its parent object, when the buffer is returned.
- Cleaner interface to get/find
- Adds delete entry, an expensive O(n) operation
- Adds update entry, which is O(n) sometimes
- Minor bugfixes:
- Keep sorted state when appending empty buffers
- Misspelling of camera_metadata_type_size in header
- Missing entry in type name array
- Add vendor_tag_query_ops_t as argument to methods inside it.
- Add version and flags fields
- Add sorted flag; additions and appends are not sorted, and thus
reset the flag.
- Add sort method, which sets the sorted flag.
- Add find-by-tag method, which uses a linear search on a non-sorted
buffer, and a binary search on a sorted buffer.
- Change dump method to take in a fd, like the HAL-level dump methods
- Minor revisions to tag definitions, including a few enums for