Commit Graph

660 Commits

Author SHA1 Message Date
Yin-Chia Yeh
0d72ef929f Camera: external camera VTS fixes
Test: VTS pass for external camera
Bug: 72261912
Change-Id: I4f1da37081d0b8c1519ecc0ecc0cc6c3850ee2bb
2018-03-13 17:41:33 +00:00
Shuzhen Wang
17d817a889 Camera: Do not forward capture_result in error condition
If HAL calls process_capture_result with invalid buffers, the HIDL
wrapper shouldn't forward it to camera service, since the CaptureResult
structure may not be completely initialized.

Test: Run GoogleCamera
Bug: 74433802
Change-Id: Iaf20b542af5b11ffbedf709e99137b69d77a9ad3
2018-03-09 16:01:06 -08:00
Yin-Chia Yeh
94f52a39c2 Camera: use finer lock in external camera OutputThread
To avoid OutputThread waiting for mLock.

Test: CTS RecordingTest + systrace
Bug: 72261744
Change-Id: If387a1d4a2b0081c4bc43cb648a98e3706864f19
2018-03-07 14:46:51 -08:00
Yin-Chia Yeh
c15a1cab6f Camera: more external camera CTS fix
Also update default external camera config to prevent
over promising peformance on lower end devices.

Test: API2 CTS tests except RecordingTest
Bug: 72261744
Change-Id: I20310606520099abf0f5173690f4aaf56a3e52a9
2018-03-06 10:35:29 -08:00
Yin-Chia Yeh
8b699aaf37 Camera: various external camera CTS fixes
1. Update the FPS range to list (0.5*fps, fps) only
   as webcams tends to skip a lot of frames and not
   able to output at stable framerate.
2. Exif: don't expect focal length to present
3. Thumbnail: allow 0x0 size for no thumbnail output
4. Allow retry some ioctl during configureStream as
   some webcams seems having problem in quick close
   reopen operation.

Test: CTS CameraTest
Bug: 72261912
Change-Id: Ic23b7fb293b7579694c59240e854d750c842886d
2018-03-06 10:35:12 -08:00
Yin-Chia Yeh
96a0da5e87 Merge "Camera: add profiling traces" 2018-03-02 19:13:44 +00:00
TreeHugger Robot
4a35fa3b54 Merge "Use std::unordered_map for mTagToTypeMap" 2018-03-01 22:18:18 +00:00
Yin-Chia Yeh
92f9063516 Merge "Camera: add external camera fps control" 2018-03-01 19:19:43 +00:00
Yin-Chia Yeh
e99cf209de Camera: add profiling traces
Bug: 72261744
Change-Id: I82e4d8ecc702c12bb7beb4f3d9979869ce6f4ac2
2018-02-28 16:00:28 -08:00
Yin-Chia Yeh
3aa9ae979c Camera: add external camera fps control
V4L2 doesn't seem to allow changing fps at runtime, so we need to
wait until pipeline is idle and reconfigure V4L2 streams.

Also update the fps filtering logic to make sure supported fps
are consistent as long as the major dimension is the same.
Ex: for 4:3 webcams, all 1280*N sizes has the same fps set, or
    for 16:9 webcams, all N*720 sizes has the same fps set.

Bug: 72261912
Change-Id: I534f09bebadb2f532a030a841633a8be7d3a87cc
2018-02-28 16:00:18 -08:00
Chris Jenneisch
356e28fdb1 Use std::unordered_map for mTagToTypeMap
In the profile we notice that  SortedVectorImpl::_indexOrderOf is
almost 1.6% which is quite high considering it is an access to
a container. We make mTagToNameMap as a std::unordered_map
to store the Tag and the types. The accesses would be in constant time.

This change removes this from the profile and give ~10% improvement.

Bug: 72526772
Change-Id: Iffd244febd093bdfec9fe4d5e846a0e59c0ecdce
2018-02-28 23:14:31 +00:00
TreeHugger Robot
0cbf96f1e2 Merge "Camera: assert no HAL1 in devices launched in P+" 2018-02-23 21:41:33 +00:00
Yin-Chia Yeh
58dd1650c7 Camera: assert no HAL1 in devices launched in P+
Also remove the length check for getCameraIdList as external
camera providers are supposed to report 0 there.

Test: atest VtsHalCameraProviderV2_4Target (on marlin)
Bug: 69473913
Change-Id: I9059a699a6c46a3aac76454e7e8673d2539d0fa1
2018-02-23 12:09:39 -08:00
TreeHugger Robot
c93fe9a9bb Merge "camera: Add OisSamples synthetic key" 2018-02-23 18:47:56 +00:00
Yin-Chia Yeh
cd17100fe6 Camera: clarify external camera device ID requirements
Bug: 64874137
Change-Id: Ibf45a0077952d2ec42cdef80659a019b6d24051f
2018-02-21 15:52:02 -08:00
Yin-Chia Yeh
8c76b8c465 Merge "Camera: avoid copying of HalRequest" 2018-02-21 21:53:22 +00:00
Yin-Chia Yeh
fa5aafbec3 Merge "Camera: implement external camera dumpState/close" 2018-02-21 18:34:22 +00:00
Yin-Chia Yeh
e086fb7b4a Camera: avoid copying of HalRequest
Bug: 64874137
Change-Id: I46ea14facf467921da633cde7e24ff9703a6a8f7
2018-02-20 16:28:55 -08:00
Yin-Chia Yeh
4a3393cd8a Camera: implement external camera dumpState/close
Also switch to v4l2 timestamp is it's MONOTONIC

Test: Cts CameraDeviceTest
Bug: 72261676
Change-Id: Iec82c254dcf16a56952ff8910d13c92782d48090
2018-02-20 16:28:50 -08:00
TreeHugger Robot
2e8bcf7a30 Merge "Camera: Add sensor sensitivity burst test" 2018-02-19 11:04:21 +00:00
Emilian Peev
a5f0207db7 Camera: Add sensor sensitivity burst test
A test is needed which will generate a burst request
that contains alternating sensor sensitiviry values.
The corresponding results need to be verified accordingly.

Bug: 37533777
Test: run vts --skip-all-system-status-check --skip-preconditions
--primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO

Change-Id: I58ccb645b83c48ba3360aae5ad44036ce213964d
2018-02-19 09:00:29 +00:00
TreeHugger Robot
d477e1e092 Merge "Camera: implement external camera flush" 2018-02-16 18:58:57 +00:00
Chien-Yu Chen
d8c3160e9d camera: Add OisSamples synthetic key
Add a synthetic OisSamples key containing timestamps and
shifts.

Test: CTS
Bug: 64847201
Change-Id: I6468136a329bcc67d087043ec8bd242bcd922e48
2018-02-15 12:40:36 -08:00
TreeHugger Robot
9c14496f2c Merge "Camera: Add support for empty physical settings optimization" 2018-02-14 20:25:38 +00:00
Yin-Chia Yeh
72eb5eea6b Merge "Camera: use rational/double for external camera framerate" 2018-02-14 18:31:02 +00:00
Yin-Chia Yeh
190e5601d6 Camera: implement external camera flush
Test: CTS abort capture test
Bug: 72261676
Change-Id: I0c3af8693a885672953ff394121c40c5ade59964
2018-02-13 18:52:42 -08:00
Yin-Chia Yeh
9eee6a9fd1 Merge "Camera: plumb external camera API1 support" 2018-02-13 22:35:06 +00:00
Yin-Chia Yeh
134093a43f Camera: use rational/double for external camera framerate
For better precision.
Ex: minFrameDuration of 30fps 333333334->333333333

Bug: 72261912
Change-Id: I830d694d34eb01426e46279c4c986d8879b9d847
2018-02-12 15:00:34 -08:00
Yin-Chia Yeh
1798249b8f Camera: plumb external camera API1 support
And also some refactoring to unify external camera
config file logics.

Bug: 72261912
Change-Id: If83d779c57540809bdaa58a5a32cf4ade734fafe
2018-02-12 12:16:23 -08:00
Eino-Ville Talvala
0a2a9fc18c camera.device@3.4/metadata@3.3: Revise MOTION_TRACKING capability
Simplify the API for the P release

- Remove new templates
- Update docs
- Also update some metadata docs from prior changes

Test: Revised Camera CTS passes
Bug: 63629224
Change-Id: I47fb170052cf6062955278ace624a91e8a0078b3
2018-02-12 11:29:25 -08:00
Emilian Peev
e0c52bb1f0 Camera: Add support for empty physical settings optimization
Empty individual physical settings should be allowed after
one initial successful request.

Bug: 72524845
Test: run vts --skip-all-system-status-check --skip-preconditions
--primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO

Change-Id: I18d22a56f5f0e6e1d81a6e8c844697c02bc343a1
2018-02-09 20:19:36 +00:00
Yuriy Romanenko
9cdd6f9516 External: Switch to legacy V4L2 buffer mapping
Required for older kernels like 3.x

Change-Id: I0680320b606727bdb0b22dab1df8c5954d623f10
2018-02-06 21:39:59 +00:00
TreeHugger Robot
fe1192ecfc Merge "External camera: add device config file" 2018-02-06 21:35:15 +00:00
TreeHugger Robot
8f8e3b2e11 Merge "camera: Update multi-camera capture VTS case" 2018-02-05 21:13:23 +00:00
Yin-Chia Yeh
1e08966178 Camera: fix external camera FD double close
Release fence close was handled by freeReleaseFences so
hidl_handle should not own the native handle.

Test: running external camera on marlin
Bug: 64874137
Change-Id: I68e76d31985380eb3c502276df07d3648f67b6f1
2018-02-02 16:00:29 -08:00
Yin-Chia Yeh
53f4cb140a External camera: add device config file
Also remove sizes cannot be cropped from maximal
size.

Bug: 72261897
Change-Id: Icb50cfa58a12e80be3cacc49569fac90be03c8e5
2018-02-02 11:50:56 -08:00
Emilian Peev
6c87861cf6 camera: Update multi-camera capture VTS case
Individual physical camera requests should only be allowed
in case the respective physical Ids are among the last
configured Hal streams.

Bug: 72524603
Test: run vts --skip-all-system-status-check --skip-preconditions
--primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO
Change-Id: Ia5715398f74f03528d7fe2e52e5b9e32ad654a2c
2018-02-02 08:36:12 +00:00
TreeHugger Robot
4c5bfc6979 Merge "Camera: add buffer size to Stream" 2018-01-30 06:05:25 +00:00
Yuriy Romanenko
e932f1b5cb Implement JPEG support in external camera HAL
* Certain tests are still failing

Change-Id: I01bb90757cd969ace30857a8d246e4701498d379
2018-01-29 12:07:34 -08:00
Yuriy Romanenko
33d5f66633 Common: Added CameraMetadata -> libexif converter
A fully-ported version of the ExifUtils class from
ChromeOS (see [chromeos]/src/platform/arc-camera/common/exif_utils.cc)

 * Made into an interface to remove libexif dependencies
   from header file
 * Rewrote ChromeOS dependencies
 * Minor fixes

Change-Id: I2e93fa3e08e6b82b26641cc736eeb1c61b04a2c0
2018-01-26 21:23:56 -08:00
Yin-Chia Yeh
b534d9bf29 Camera: add buffer size to Stream
So that HALs without device knowledge knows the maximal size
it can lock using graphics mapper API.

Bug: 64874137 72261675
Change-Id: I7363f5c63d955ab412f9570bf8e5be2a942cf381
2018-01-26 16:50:24 -08:00
Yuriy Romanenko
083de0c3c6 ExternalCameraDeviceSession: Fix request initialization
This code was exiting because of unsupported RequestTemplate::*
enum values that are now just ignored.

Change-Id: I37f79cbbfe99664ec173458721d71947f0d002ff
2018-01-26 16:11:12 -08:00
TreeHugger Robot
354db50595 Merge "External Camera: more CTS fix" 2018-01-25 23:37:41 +00:00
Yuriy Romanenko
d0bd4f11f8 Common: Added lock() to camera HandleImporter
Effectively a counterpart to lockYCbCr() but for generic single-plane
buffers

Change-Id: I73d051c085fe2b96810a1ed761deac177db2733d
2018-01-25 12:50:40 -08:00
Yin-Chia Yeh
4acd76e647 External Camera: fix aspect ratio/crop issue
Also switch to new EXTERNAL hardware level.

Test: ImageReaderTest#testAllOutputYUVResolutions pass
Bug: 72261912
Change-Id: I95f05a20827b413bfa480b0336fff395159678eb
2018-01-25 18:47:51 +00:00
Shuzhen Wang
39cf8fd9fe camera: Add physical camera metadata in CaptureResult
- When physical stream of a logical multi-camera is requested, HAL needs
to generate metadata for the physical cameras.
- In case no physical stream is requested for the logical multi-camera, no
capture result metadata is required for physical camera.
- Batch physical and logical metadata within one capture_result call.

Test: testLogicalCamera CTS test
Bug: 64691172
Change-Id: Id040620f3f0c350711d49341ab31ab88ecd94888
2018-01-24 18:14:58 -08:00
Yin-Chia Yeh
fb1c154342 External Camera: more CTS fix
Test: CameraDeviceTest, CaptureResultTest, StaticMetadataTest
      ExtendedCameraCharacteristicsTest, RobustnessTest
Bug: 72261912

Change-Id: Id99d86db99a905afcc41d3e9d297ce3533d852a2
2018-01-24 15:48:42 -08:00
Eino-Ville Talvala
658d30d3c8 camera.device@3.4: Add MOTION_TRACKING template enums
- Extend RequestTemplate with two new values
- Add legacy wrapper support for the new templates

Test: Builds, camera continues to run. CTS coverage of templates
tests new templates as expected.
Bug: 63629224
Change-Id: I2a44d86a815690798fa4b8327794c64716d134ee
2018-01-23 17:10:33 -08:00
Steven Moreland
5d1e41a8fd Update makefiles.
Bug: N/A
Test: N/A
Change-Id: Idb1d74aeed9b82ca6568c76f35552f3fcc894239
2018-01-23 19:44:19 +00:00
Yin-Chia Yeh
ab4502c707 Merge "Camera: Add external camera provider" 2018-01-23 02:54:27 +00:00