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
- 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
- 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
- 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
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