Commit Graph

1202 Commits

Author SHA1 Message Date
Eino-Ville Talvala
f856a82b87 EmulatedFakeCamera2: Add autofocus management
- Add skeleton ControlThread for 3A processing
- Add fake autofocus management into ControlThread
- Support AUTO, MACRO, CONTINUOUS_PICTURE, CONTINUOUS_VIDEO

Bug: 6243944
Change-Id: Ic47f5be642d4705db86021b94aaba8dcc7f32cf0
2012-08-08 10:43:37 -07:00
Eino-Ville Talvala
05940c4d69 Camera2: Use lower resolutions for front fake camera. DO NOT MERGE
To differentiate front/back fake camera, support a lower set of
resolutions for the front camera processed and jpeg streams.

Bug: 6243944
Change-Id: I4a8746500944f7b445e0e5f0a3f441885733a7a4
2012-07-26 10:04:38 -07:00
Eino-Ville Talvala
1e903b0745 Camera2: Fix deadlock issues with getInProgressCount. DO NOT MERGE
Bug: 6243944
Change-Id: Icb32e4b8c4a916eb7c97ac18767cadfc5122ec88
2012-07-26 10:04:16 -07: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
4d57cb8d65 gralloc: Add automatic format selection. DO NOT MERGE
Have gralloc_alloc be able to select the appropriate pixel format
given the endpoints, triggered by new
GRALLOC_EMULATOR_PIXEL_FORMAT_AUTO format.

Currently supports camera->screen, and camera->video encoder.

Bug: 6243944
Change-Id: Ib1bf8da8d9184ac99e7f50aad09212c146c32809
2012-07-26 10:03:05 -07:00
Eino-Ville Talvala
3461561ccf gralloc: Support HAL_PIXEL_FORMAT_YCrCb_420_SP (NV21)
This is needed for Camera HAL2 video recording.

Bug: 6243944
Change-Id: I47a3e65117881612fb95068a80f811cc8378fbc6
2012-07-11 17:21:18 -07:00
Jesse Hall
e705cdde0d Update to renamed ANativeWindow methods
A few ANativeWindow methods were updatd to take a Sync HAL file
descriptor, and the existing methods were renamed with a _DEPRECATED
suffix. Since the emulator graphics acceleration doesn't yet support
the sync HAL, this change continues calling the deprecated functions
via their new names.

Change-Id: I5b1760811fafb6723ede887e32e63f94cbaeffe5
2012-06-21 23:16:56 -07:00
Xavier Ducrohet
c5fd927f4a am 8f38da3d: am e8f7f5fe: Fix WXGA800-7in to be portrait by default.
* commit '8f38da3deff60c9d5cac0b355c2d95d967216828':
  Fix WXGA800-7in to be portrait by default.
2012-06-21 19:41:14 -07:00
Xavier Ducrohet
8f38da3def am e8f7f5fe: Fix WXGA800-7in to be portrait by default.
* commit 'e8f7f5fe9f08c2381908d13a63fc34b12d6f95c3':
  Fix WXGA800-7in to be portrait by default.
2012-06-21 19:39:13 -07:00
Xavier Ducrohet
e8f7f5fe9f Fix WXGA800-7in to be portrait by default.
Bug: 6712001

Change-Id: I047e023e726f83ff63f8fe00fb3f43698ad1db37
2012-06-21 19:33:26 -07:00
Eino-Ville Talvala
9f3517e96f EmulatedFakeCamera2: Use correct camera orientation.
Get orientation from the camera factory; otherwise preview is
displayed incorrectly.

Bug: 6243944
Change-Id: Icb27a53ad333109a62dce012216aca67e3e881b8
2012-06-15 13:15:55 -07:00
Eino-Ville Talvala
cc588adda3 EmulatedFakeCamera2: Implement basic dump()
Bug: 6243944
Change-Id: I84696ea79f8c36d34c2cccdac259c9baba048c1f
2012-06-14 10:52:04 -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
2a2ada537a Emulator gralloc: Support HAL_PIXEL_FORMAT_BLOB
Bug: 6243944
Change-Id: I2864bc59be9df8741639a291c71e2f65dde5bc0b
2012-06-13 12:08:18 -07:00
Eino-Ville Talvala
423650c32c EmulatedFakeCamera2: Minor fixes
- Add some error checking
- Change default exposure/gain to avoid overexposure.
- Improve gain calculation for RGBA output

Bug: 6243944
Change-Id: Iaa9f35e0b62883a947cc9e63f86d0ec3ae828576
2012-06-08 09:52:38 -07:00
Xavier Ducrohet
547975cf50 am 98a05b89: am 21f4ca57: am 74ed92d3: Merge "Move emugl system code to development.git"
* commit '98a05b894e6f2981816a87ea0dbd6a3092d5c507':
  Move emugl system code to development.git
2012-06-07 12:21:17 -07:00
Xavier Ducrohet
98a05b894e am 21f4ca57: am 74ed92d3: Merge "Move emugl system code to development.git"
* commit '21f4ca579e58e9a2eaad841f5174eba44c926153':
  Move emugl system code to development.git
2012-06-07 12:19:21 -07:00
Jesse Hall
56513f5ff4 Move emugl system code to development.git
Because of the way the SDK and Android system images are branched,
host code that goes into the SDK tools can't live in the same
repository as code that goes into the system image. This change keeps
the emugl host code in sdk.git/emulator/opengl while moving the emugl
system code to development.git/tools/emulator/opengl.

A few changes were made beyond simply cloning the directories:

(a) Makefiles were modified to only build the relevant components. Not
    doing so would break the build due to having multiple rule
    definitions.

(b) Protocol spec files were moved from the guest encoder directories
    to the host decoder directories. The decoder must support older
    versions of the protocol, but not newer versions, so it makes
    sense to keep the latest version of the protocol spec with the
    decoder.

(c) Along with that, the encoder is now built from checked in
    generated encoder source rather than directly from the protocol
    spec.  The generated code must be updated manually. This makes it
    possible to freeze the system encoder version without freezing the
    host decoder version, and also makes it very obvious when a
    protocol changes is happening that will require special
    backwards-compatibility support in the decoder/renderer.

(d) Host-only and system-only code were removed from the repository
    where they aren't used.

(e) README and DESIGN documents were updated to reflect this split.

No actual source code was changed due to the above.

Change-Id: I2c936101ea0405b372750d36ba0f01e84d719c43
2012-06-06 09:46:29 -07:00
Eino-Ville Talvala
c7bb6cf132 EmulatedFakeCamera2: Add opaque stream output support
- Enables basic preview
- Opaque is RGBA for emulator
- Still only 1 stream max
- Preparations for YUV output support

Bug: 6243944
Change-Id: I11cb494d72c7c2ec5f542c79f1aa15d9a3ce00bf
2012-05-22 10:38:56 -07:00
Eino-Ville Talvala
7b906a7ca9 EmulatedFakeCamera2: Add more static metadata
- Add entries for all metadata
- Use better idiom for static metadata construction
- Revise dynamic and static metadata
  - New resolution reporting
  - Minor revision to some enums
- Quiet excess logging

Bug: 6243944
Change-Id: I0558d7d60ae97d2df9e209f24c1e04330737c220
2012-05-21 14:10:25 -07:00
Eino-Ville Talvala
366eef524c EmulatedCamera2: Be more const, like the HAL.
Bug: 6243944
Change-Id: I01f67c22b6e54dc49f22c6bc2c665b1db4ff6680
2012-05-20 17:04:27 -07:00
Eino-Ville Talvala
ab463b3ece EmulatedFakeCamera2: Support construct_default_request HAL method.
Bug: 6243944

Change-Id: I888fefae0b08532862171323774808cf241cdad1
2012-05-15 14:56:54 -07:00
Eino-Ville Talvala
bb54bb03ec EmulatedFakeCamera2: Update to match camera_metadata changes
Bug: 6243944
Change-Id: I3ff301829827b7e694c371efe7915667d9a66493
2012-05-14 18:08:18 -07:00
Eino-Ville Talvala
7479f77186 Merge "Add minimal operation to new fake camera emulator." 2012-05-14 18:03:37 -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
Jean-Michel Trivi
f6b7dd7e7d Merge "Add FLAC encoder to the list of media codecs." into jb-dev 2012-05-10 09:55:15 -07:00
Jean-Michel Trivi
cb62e8bf28 Add FLAC encoder to the list of media codecs.
Bug 5525503

Change-Id: I2326bfec38dbbb641d8c32f5dee98da9da6c3a83
2012-05-09 15:54:27 -07:00
Xavier Ducrohet
6bd1ae5e75 Fix skin.
Bug: 6447905

Change-Id: I50779c5c343ed9f0bf432336b861153e9b047f07
2012-05-07 18:14:36 -07:00
James Dong
d71b64f6c1 Added software mpeg4 and h263 video encoder to sdk/emulator build
o related-to-bug: 6401068

Change-Id: If0711b68e1f6be88b123fc8117be970c87bc1d8f
2012-04-25 18:12:43 -07:00
James Dong
1632bc614d Added software h264 video encoder for emulator/sdk build
o related-to-bug: 6383440

Change-Id: I0abf595cd1cabd0be6d05bc9250c90300149f16b
2012-04-25 13:51:56 -07:00
Xavier Ducrohet
262cb246e0 Add skin for 1280x800@213dpi devices.
Change-Id: I60a5f3b4b6dfbce49fbc9da7f2bc627e984e9fba
2012-04-19 10:59:42 -07:00
Jesse Hall
80d4ba7716 Move emulator GLES from development.git to sdk.git
The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ie73fce12815c9740e27d0f56caa53c6ceb3d30cc
2012-04-18 06:26:17 -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
3cd661a616 Merge "Revert "Revert "Multi-project commit, other commits weren't ready after all. (Revert)""" 2012-04-17 09:14:00 -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
0ef6f51e59 Merge "Revert "Multi-project commit, other commits weren't ready after all. (Revert)"" 2012-04-17 08:57:47 -07:00
Jesse Hall
b62e28ddde Move emulator GLES from development.git to sdk.git
The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ibe2cf8de13520aa3fcbaf72328a15ece261d7b86
2012-04-16 15:53:33 -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
a5a83d57e7 Merge "Multi-project commit, other commits weren't ready after all." 2012-04-05 16:47:59 -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
ea52f4fab4 Merge "Add skeleton implementation of a fake v2 camera device." 2012-04-05 16:30:20 -07:00
Eino-Ville Talvala
4eef3c7178 Merge "Camera emulator: Add timestamps to PreviewWindow output." 2012-04-05 16:30:12 -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
5318919f7f Camera emulator: Add timestamps to PreviewWindow output.
Change-Id: Ib0006fa98abebcc8ffa4b496a3bdd86b11e6c9be
2012-04-05 15:45:55 -07:00
Xavier Ducrohet
34f38a5cdd am 4db20997: am e3e74aa5: am 2a57c793: Merge "Move stuff from prebuilt to prebuilts/tools"
* commit '4db20997681bbb2c7a16e1c7d50b1a1901496144':
  Move stuff from prebuilt to prebuilts/tools
2012-04-04 14:06:28 -07:00
Xavier Ducrohet
e3e74aa50e am 2a57c793: Merge "Move stuff from prebuilt to prebuilts/tools"
* commit '2a57c79366dcdac42e330a8af752e44410556f31':
  Move stuff from prebuilt to prebuilts/tools
2012-04-04 14:01:30 -07:00
Xavier Ducrohet
40525ef472 Move stuff from prebuilt to prebuilts/tools
Also move some atree copy to sdk.git where they belong.

Change-Id: Iab62343806917f24f47d15b9dea75e44422d8764
2012-04-03 16:33:35 -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
Jesse Hall
bebaa976c4 am 1cc6451d: am e824ff28: am db9e12c6: am 71aa2fca: Merge "EmuGL: Deliver every frame to a callback"
* commit '1cc6451d69c010008f4dded82b864043e0af8b92':
  EmuGL: Deliver every frame to a callback
2012-03-27 10:10:51 -07:00
Jesse Hall
501566de2d am ad471361: am 64cec470: am 64cd8f35: EmuGL: use custom egl.cfg in Google APIs add-on
* commit 'ad471361f1400838fa61fed1e7e45a15f6da6809':
  EmuGL: use custom egl.cfg in Google APIs add-on
2012-03-27 10:10:43 -07:00