HAL changes required in order to enable required functionality.
Specifically, support for use of supplied buffers as OpenGL textures.
Addition of getDisplayState is needed in order to meet original API
spec (allow secondary clients to monitor display state). Expected to be
needed specifically by Car Service. Note that this HAL is not used on
the phone and only relevant to the Android Auto at this point.
Test: compile & run evs_test. Still issues with buffer locking.
Added getDisplayState() to IEvsEnumerator to allow secondary clients to
query for display state without having to acquire the display.
Introduced the use of weak pointers in the service to detect when
clients holding an object disappear unexpectedly.
Plus squashed commit of the following:
commit 26c685b430028384157f573b31264ff03ea4c37b
Author: Scott Randolph <randolphs@google.com>
Date: Thu Jan 19 17:29:54 2017 -0800
Convert EVS HAL to use BufferDesc (vs raw handles)
Use a structure that includes the buffer properties in addition to the
memory handle itself to make it easier/safer for the HAL client code to
reconstruct ANativeWindowBuffer objects (as required when using the
buffer as a GL texture, for example)
Change-Id: Ifebf0c03b9ad167d61152b85f8229d5970cc41af
commit 0286385694282e017c12f238f5aaa86d8d1bd600
Author: Scott Randolph <randolphs@google.com>
Date: Tue Jan 17 12:01:09 2017 -0800
Incremental cleanup of EVS driver
Change-Id: Ibba2b7d9a1c55629d76ee6faf2a9f36c715e7bd7
commit 71e7b85f3919a60c5a194028a586ce81846c6c0d
Author: Scott Randolph <randolphs@google.com>
Date: Thu Jan 12 10:40:45 2017 -0800
Fix error check bug that cause stream start to fail
Also fixes a minor warning related to log message string formatting.
Change-Id: I74edf9a02db87c3632b4883ca40207fe861fd75d
commit 164e7ef048eba9bc184319ea928d231a26b695bc
Author: Scott Randolph <randolphs@google.com>
Date: Wed Jan 11 17:27:46 2017 -0800
Fix HAL update related compile bugs
Minor changes to accomodate recent HIDL/HAL changes.
Change-Id: I466d8979e8e56424442840aff8d17762eac0a590
commit 67391db6a04b2cbbda1a0b5c8b717fe79994f5b9
Author: Scott Randolph <randolphs@google.com>
Date: Wed Jan 11 13:56:23 2017 -0800
Avoid mutex reentrancy when setting frame count
At initialization time, we need to be able to set the number of frames
available for capture. This change makes the code to do this a private
function called from within a mutex in order to avoid having one mutex
protected call trying to make another mutex protected call as would
happen if it called directly into the public API.
Change-Id: I05c383976dd8db1acf5874bd47b2a3c3521d7032
commit 993f6e7e1e43f2bc4a48f6aae32d9ba2c3125d23
Author: Scott Randolph <randolphs@google.com>
Date: Mon Dec 19 18:39:38 2016 -0800
Avoid forced exit if frame delivery fails
If we don't read the error code from the frame delivery call, the
underlying code forces an application exit if an error was returned.
Even when we don't care about the result, we have to read it to avoid
this.
Change-Id: Ie3695faa10d1c5e340f66c369bfc2595ac516434
commit 08298db0f2d5d0ae7cd0781fde834fc7e63375d0
Author: Scott Randolph <randolphs@google.com>
Date: Mon Dec 19 18:21:16 2016 -0800
Support adjustable number of frames in flight
Add enhanced support for SetMaxFramesInFlight which is required to
support concurrent camera clients at the EVS Manager level.
Change-Id: I23b606a017529514370a03cd2eca3ee286af8fec
commit 198050b2cff70d1a232745ce8e7f35e87581562e
Author: Scott Randolph <randolphs@google.com>
Date: Fri Dec 16 16:27:19 2016 -0800
Add frame contents validation to EvsDisplay
Update the default "mock" implementation of EvsDisplay hardware layer to
provide a frame contents validation based on knowledge of what the
"mock" EvsCamera implementation will emit.
Change-Id: If0624f855a440f52a47af7751ed3b09e8b21ff74
commit c830b7ca466155049d6eee047f6c323521451e8b
Author: Scott Randolph <randolphs@google.com>
Date: Fri Dec 16 15:25:48 2016 -0800
Add multi-buffer support to EvsCamera
Extend the EvsCamera implmentation to support more than one buffer in
flight at a time. This is necessary in order to support concurrent
client access through the EvsManager proxy layer.
Change-Id: I0c32336be40c7bedd797140569650906458d27c1
commit 1bdbb9d641f95d494ec2a398b6d1f5202276d17b
Author: Scott Randolph <randolphs@google.com>
Date: Fri Dec 16 15:24:28 2016 -0800
Add additional validation on round trip pointers
Now that HIDL support returning the same pointer to an interface object
after a round trip through the transport, we can add a bit more
validation.
Change-Id: Ia9a3a6ec7552f5e5523c0f9ad66ceb02b46b2db4
Change-Id: I47468932d6a7b2b5eab47819917cdb20154d8f18
Add support for EVS system camera and display drivers.
These build and run but still contain significant placeholder code and
TODO items.
Bug: 32095143
Test: run against evs_test (submitted in future change set)
Change-Id: I9187e888f03248e5cd43293253dc76a71184c02d