Commit Graph

15 Commits

Author SHA1 Message Date
Ying Wang
75ac6f2897 "debug" in those modules is discouraged
Because we need those modules for only emulator builds.
If you mark them as "debug", you'll get them even if you are doing a
real device userdebug/eng build.
Instead, we should add their module names to the emulator product config
in build/target/product/emulator.mk.

Bug: 8276818
Change-Id: I58988ce49804583b06e7d93380c44ba800448216
2013-03-01 09:49:44 -08:00
Eino-Ville Talvala
b0bd05236f EmulatedFakeCamera2: Add recording support for 320x240, NV21. DO NOT MERGE
- Support 320x240 in addition to 640x480
- Support NV21 (monochrome only right now)
- Base simulated time on system time,
  since stagefright cares about timestamp base
- Use emulator magic gralloc format to enable gralloc to pick format based on
  destination.

Bug: 6243944
Change-Id: I3ea56bca726c69b51e03233ce86d4881401a3ffd
2012-07-26 10:03:35 -07:00
Eino-Ville Talvala
e26e64f2de EmulatedFakeCamera2: Add support for JPEG output, multiple streams
Required to support Camera.takePicture()

Bug: 6243944
Change-Id: I60d7a161a7037c25428eac5a6f9327aff47da584
2012-06-13 12:08:28 -07:00
Eino-Ville Talvala
61fbf61670 Add minimal operation to new fake camera emulator.
- Rework to match latest camera 2 HAL.

- Somewhat realistic scene lighting simulation, for allowing a
  realistic range of exposure and gain values.

- Supports raw Bayer sensor data only, at 640x480

- Only one stream configurable

- No support for reprocessing, 3A, flash, YUV, JPEG, etc

Bug: 6243944
Change-Id: I14fbad58ffeff37162c56d9daff7e4f75ab879c3
2012-05-10 16:23:28 -07:00
Eino-Ville Talvala
0819e42a0b Add skeleton implementation of a fake v2 camera device.
Change-Id: Idd2485064548a6036ea318680065b7429463d9cd
2012-04-17 10:05:17 -07:00
Eddy Talvala
ee16c8342b Revert "Revert "Multi-project commit, other commits weren't ready after all. (Revert)""
This reverts commit a1e84accb5
2012-04-17 09:12:39 -07:00
Eddy Talvala
a1e84accb5 Revert "Multi-project commit, other commits weren't ready after all. (Revert)"
This reverts commit f3785f1414
2012-04-05 18:06:40 -07:00
Eddy Talvala
f3785f1414 Multi-project commit, other commits weren't ready after all.
Revert "Add skeleton implementation of a fake v2 camera device."

This reverts commit 5a35e724fc
2012-04-05 16:45:02 -07:00
Eino-Ville Talvala
5a35e724fc Add skeleton implementation of a fake v2 camera device.
Change-Id: I46df945117adef8d5c03846b1dd29435fa4c7d46
2012-04-05 16:04:29 -07:00
Eino-Ville Talvala
d6a3832650 Update emulated camera to support HAL v2.0 modules and devices.
- Update camera HAL module to version 2

- Break out common camera HAL device functionality into
  EmulatedBaseCamera

- EmulatedCamera is now the base class for all version 1 camera
  devices.

- No camera device version 2 implementation included.

No change to supported functionality.

Change-Id: Iabb0b9a4e41f3c01dfd921256fa8fb1d40d71834
2012-03-27 16:40:12 -07:00
James Dong
27b71c7383 Switched to use header files in /frameworks/native
o related-to-bug: 6044887

Change-Id: Iea98db35e51aaf52063565818ecfea8a935693f3
2012-03-12 20:37:02 -07:00
Vladimir Chtchetkine
2a532ee388 Implement "takePicture"
With this CL the camera emulator is capable of taking pictures

Change-Id: I29feea0c75a78c619aaf854a5665a24afb507ba4
2011-09-15 18:24:32 -07:00
Vladimir Chtchetkine
5467be2eef Refactored emulated camera HAL to comply with code style
Change-Id: If57b536ae6b1f9bad4213630488591a3b3cc9fdd
2011-09-13 14:35:25 -07:00
Vladimir Chtchetkine
33bda47528 Implements connection with the emulator
Change-Id: Ie3910a98e927f7b8ea556c403f8ced27e06bcdec
2011-09-13 09:44:32 -07:00
Vladimir Chtchetkine
b97c2f0b59 Fake camera implementation
The code submitted here builds a camera.goldfish.so module that encapsulates a camera HAL.

The major components of the camera HAL implementation are:
* Generic HAL module implemented in emulated_camera_hal.cpp There is nothing much
  to it: just exporting the required HAL header.
* EmulatedCameraFactory class that manages emulated cameras, and provides handling for
  camera_module_methods_ methods. There is only one object of this class, that is statically
  instantiated when camera.goldfish.so module is loaded.
* EmulatedCamera class that implements camera_device_ops_t API. Objects of this class are
  instantiated during EmulatedCameraFactory construction, and they interact with objects
  of EmulatedCameraDevice class to get frames.
* EmulatedCameraDevice class encapsulates an actual camera device. Objects of this class
  are contained in EmulatedCameraDevice objects, and interact with them as required by the
  API.

The fake camera implementation is shared between EmulatedFakeCamera, and EmulatedFakeCameraDevice
classes. They are pretty light. In fact, EmulatedFakeCamera is nothing more than just a
placeholder for EmulatedFakeCameraDevice instance, and EmulatedFakeCameraDevice does nothing
more, than just drawing a checker board with a bouncing square.

Other components / routines are minor: helpers, wrappers, etc. The code is heavily commented,
so there will be plenty of explanations between the lines.

Change-Id: I4463e14c255c6e3b1dcca17bed5f4efde32d9879
2011-09-12 08:37:48 -07:00