aboutsummaryrefslogtreecommitdiffstats
path: root/android
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Implements white balance and exposure compensation for emulated webcam"Vladimir Chtchetkine2011-12-137-80/+274
|\
| * Implements white balance and exposure compensation for emulated webcamVladimir Chtchetkine2011-12-057-80/+274
| | | | | | | | Change-Id: Id2dbb227280f0c0e1b5708ef78b9f19b087f92d5
* | Implements double-linked circular list.Vladimir Chtchetkine2011-12-081-0/+112
| | | | | | | | | | | | | | This is part of a bigger CL (coming later this week) that uses qemu pipes to hook up host ADB with ADBD daemon running on the guest system. Change-Id: I625b020531af636b9b9fa4e4aa52b7586749c693
* | Fixes emulator crash due to premature pipe client destruction.Vladimir Chtchetkine2011-12-071-9/+26
|/ | | | | | | | | The pipe client should really be closed (and destructed) only when the guest closes its handle to the pipe. When pipe client is closed from within the emulator, it should only notify the guest about disconnection, and wait for the guest to explicitly close the pipe handle. Change-Id: I6bde3ae1e05ff5dc40e9903282c3fc46df0b9b57
* Fix 64-bit build.David 'Digit' Turner2011-11-231-5/+7
| | | | | | | | | | This fixes the 64-bit Linux build (i.e. ./android-rebuild.sh --try-64). You can't really call _mm_empty() when your target CPU doesn't support MMX. We should probably try to use XMM registers instead of MMX for this in the future, but this should be good enough for now. Change-Id: If5abf747939022ef47daf7eb4badf1798e22bf95
* Add 320x240 frame support for Windows and Mac camera emulationVladimir Chtchetkine2011-11-152-0/+4
| | | | Change-Id: I54897ca86b372d98c7a30a47ecf88a4df8ee0fe9
* Add required frame dimensions for Win and Mac.Vladimir Chtchetkine2011-11-152-12/+22
| | | | | | | | | | Camera framework requires that certain frame dimensions must be supported by the camera devices. Since on Windows and Mac we have no way of knowing the real webcam capabilities, but camera API there pretty much allows us to choose any frame dimensions that we want, we will hard-code those that are required by the camera framework. Change-Id: I625381776f374103d2ac1c62fabae23b1c5afa88
* Minor fix for debug outputVladimir Chtchetkine2011-11-151-1/+1
| | | | Change-Id: I554de3610bbd28cc299fecae4bf0199f044edb5a
* Fixes windows buildVladimir Chtchetkine2011-11-101-2/+2
| | | | Change-Id: Ia2c29d890695186b04dd5d306c88aadfe084318f
* Implements sensors emulation using a connected Android deviceVladimir Chtchetkine2011-11-099-13/+2046
| | | | | | | | | | | | | | There are three major things in this CL: 1. Abstract a connection with an Android device that is connected to the host via USB, and there is a TCP port forwarding to this device via 'adb forward' command. This abstraction is implemented in android/android-device.* 2. A client for android device API that talks to an app on the connected device that provides values for sensors available on the device. This is implemented in android/sensors-port.* 3. Changes to the sensor emulation code in android/hw-sensors.c to use sensors port (when available) for sensors emulation. Change-Id: I12901e8db6b6a6262fc1703ed96a9f714335d666
* Fix snapshot crashDavid 'Digit' Turner2011-11-082-26/+183
| | | | | | | | | | | | | | | - Add snapshot load/save support to QEMU Pipes This adds the ability to save and load QEMU Pipe connections with snapshots. Note that by default, all loaded pipe client connections are force-fully closed on load. We don't have a good way to save the state of network connections to persistent storage. Properly implements snapshot save / load for qemu pipe clients. Change-Id: Ie5767f8ce40c8341b958cc5844e724dd4fc1ed2b
* Fix emulator crash.Vladimir Chtchetkine2011-10-211-5/+7
| | | | Change-Id: I4f238bbd0175036b6003ebdf266de608d6acc6e7
* Bound loop indexVladimir Chtchetkine2011-10-211-1/+1
| | | | | | | In some cases (when frame sizes for pixel formats are not available) the loop will be not properly bounded, and may cause a crash. Change-Id: I2f2380ab4e2f7454bff8eeabcaff4e3f238fe71e
* Fix emulator crash caused by bad 'printf'Vladimir Chtchetkine2011-10-202-3/+3
| | | | Change-Id: I7c4830ba7606bedcf462e967adad3358723c44ba
* Implemented Mac camera emulationVladimir Chtchetkine2011-10-122-86/+549
| | | | Change-Id: I01609e8bfcdd8ee5ef876344d0a334ecd69a2b7a
* Fix snapshotsVladimir Chtchetkine2011-10-051-13/+17
| | | | Change-Id: Ib3891704ece2cea0c5a80b468b2514e6c4d13216
* New AVD property to control presence of hw main keys.Xavier Ducrohet2011-10-041-4/+9
| | | | | | | | This allows injecting a new runtime property into the system running on the emulator to control whether to display the new software back/home keys. Change-Id: I2bf7cc5c291752090187463332219638e883d052
* Fix CPU architecture reported in HW configVladimir Chtchetkine2011-09-281-0/+11
| | | | Change-Id: I9221916514a39435d2710fa9dada92a87bdc4dab
* Fix windows buildVladimir Chtchetkine2011-09-232-2/+2
| | | | Change-Id: I7387eea3639d63b278b702100ee2d4584f87f4e2
* Check that first two cameras are facing in opposite direction.Vladimir Chtchetkine2011-09-232-13/+32
| | | | | | | Currently camera app will crash on an attempt to switch cameras if camera 0 and 1 are facing in the same direction. So, user should be warned about that on emulator start. Change-Id: Ic85da614d30295b04d2a318fb1c2015cc52f1140
* Timeout frame capturing.Vladimir Chtchetkine2011-09-236-24/+64
| | | | | | | | | | | It has been observed on some of the MS camera devices, that device may got stuck on something that would alwais return EAGAIN when queried for the next video frame. This requires us to timeout the loop that repeats attempts to acquire first frame from the device. Also added detection and reporting of I/O errors occurred during frame capturing. Also, this CL contains some cosmetick changes to error and warning reporting. Change-Id: I81edaf5ff8bfe147dbe4510e1446e77a87817f37
* Properly reset camera device between capture requestsVladimir Chtchetkine2011-09-221-9/+40
| | | | Change-Id: Ia748fe3f38e8366d0507fcee995eac311dd8c72a
* Fix video recording on WindowsVladimir Chtchetkine2011-09-221-15/+80
| | | | | | | Reseting capture windows on each "stop capture" + setting capture parameters allow to change video frame dimensions. Change-Id: I0ce8ed77dfa9838894acb9e9e84d84692bb3d520
* Fix captured frame pixel format on WindowsVladimir Chtchetkine2011-09-211-2/+2
| | | | | | | Apparently, bitmap obtained through the capXxx + clipboard API is formatted with BRG, not RGB format. Change-Id: Ib161be50d2d3258045a467b152a5a750e1a8fb42
* Fix NV12, and NV21 format descriptorsVladimir Chtchetkine2011-09-213-4/+20
| | | | | | Also adds support for YU12 pixel format that is used in video frames Change-Id: I613beef8b3e2296fd1fab7e2b9d2956fba1ac788
* Print warning on invalid webcam nameVladimir Chtchetkine2011-09-211-0/+4
| | | | Change-Id: I94939964890c4304a47ba86c582baf3a9544b5aa
* Fix win/mac buildVladimir Chtchetkine2011-09-211-4/+4
| | | | Change-Id: I8d074590bb1efd68789e341e37356bc9fb2c9c08
* Fix Mac/Windows buildsVladimir Chtchetkine2011-09-211-0/+14
| | | | Change-Id: I0acc651be93eb9b5bea49280a7dccd18c1386d48
* Implements converters for BAYER pixel formatVladimir Chtchetkine2011-09-212-43/+559
| | | | Change-Id: I68abaa8b89e2b46dc57bff1d7dbd6d9fda213dc8
* Add -webcam commandline option to control webcam emulationVladimir Chtchetkine2011-09-209-44/+430
| | | | | | -webcam name=<name>[,dir=<direction>] options controls web cameras to use for emulation. Change-Id: I961fd399c7e041541adda040dd24f194cc383cb9
* Refactor the converters to make them more manageableVladimir Chtchetkine2011-09-171-1151/+690
| | | | | | | | | | | | | | | The current conversion implementation was laking flexibility as far as adding support for new formats was concerned. In particular, adding support for each new format meant adding four converter routines: new format <--> RGB, new format <--> YUV. This was not scalable, so had to be rewritten. The new conversion implementation consists of four generic converters between different flavors og RGB/YUV formats, and array of descriptors for each supported format. Each descriptor contains information that is sufficient for the converter routines to perform its job. So, adding new format is just creating a new descriptor for that format, and adding it to the array of supported descriptors. Change-Id: Ica107d14fa03fa8f41eb9192f2c023a97f54b62c
* Add support for NV21, and NV12 formatsVladimir Chtchetkine2011-09-162-0/+584
| | | | Change-Id: I4bea0f3678b2ac21f3c6cf80581e997145e2a58d
* Merge "gles: use fast GLES pipe by default (Unix only)"David Turner2011-09-153-4/+60
|\
| * gles: use fast GLES pipe by default (Unix only)David Turner2011-09-133-4/+60
| | | | | | | | | | | | This improves performance of various benchmarks by 5% Change-Id: If2d2be0e9849429ecffe52b7d482cfbee4008473
* | Fixes "stop device" issue on LinuxVladimir Chtchetkine2011-09-141-0/+19
| | | | | | | | | | | | | | | | Apparently, video driver doesn't allow frame size change, once it has been explicitly set. In order to get around this we need to reset the handle to the camera device by closing, and then reopening it. Change-Id: Icfd37b3c196d2643507218b965c5015884ed455b
* | Add cmdline param to control fake camera emulationVladimir Chtchetkine2011-09-134-6/+42
|/ | | | | | | - Enable / Disable fake camera - Set fake camera facing direction: back, or front Change-Id: Iab741a694daf2bf752e91e23df566a83ac7a97e7
* Add -gpu <mode> option to force GPU emulationDavid Turner2011-09-133-0/+44
| | | | | | | | | By default, GPU emulation is still disabled. You can still try to force it with '-gpu on' for experimentation purpose (alternatively, you can define hw.gpu.enabled to 'true' in your AVD config.ini) Change-Id: I87efdf45337a80aeadd94b3922312b3f564c1608
* Fix -ramdisk option handling.David 'Digit' Turner2011-09-131-2/+9
| | | | | | | For some reason, there was a bug, where the option was being ignored if set from the command-line. Change-Id: I61c6e3127b469f4ec661b834b15c4da0841551af
* emulator: fix Win32 runtime crashDavid 'Digit' Turner2011-09-131-2/+2
| | | | Change-Id: I5ca4b1393211c1d8a5caba332c3f6164afb4661b
* Fix Mac buildVladimir Chtchetkine2011-09-121-1/+0
| | | | | | Remove Windows artifact Change-Id: I2ffd5979674619786742f14995edbf10edfff23a
* Fix Mac buildVladimir Chtchetkine2011-09-121-0/+87
| | | | | | Add dummy rutines implementing public camera API on Mac Change-Id: Id3c9d99d863785b0e00d1bdf6deb0a1af49ce91c
* Implements camera service in emulatorVladimir Chtchetkine2011-09-127-461/+2866
| | | | | | | | | | | | This is fully functional camera service implementation, that works (tested) on both, Linux and Windows. Fixed little/big endian bugs in the coverter code. Moved preview frames to use RGB32 instead of RGB565: RGB32 conversions are simpler and faster in the guest. Made "payload size send" a separate routine Change-Id: I96954f4c2cb4e4ef4dd6a20e41897d79c5037bae
* Camera service skeletonVladimir Chtchetkine2011-09-072-0/+349
| | | | | | | | | | Skeleton that implements camera emulation service over QEMU pipe. More meat will be added as the guest camera emulation develops. This is a patch taken from approved AOSP commit that didn't go through because of a merge conflict. Change-Id: I6f0a2e42be4f5f0bd86d3dbf0c2a609e74b200c2
* Fix for a _qemudPipe_recvBuffers bugVladimir Chtchetkine2011-09-071-3/+7
| | | | | | | | | | | | | When filling in qemud buffers in the loop, current offset in the current qemud buffer (off_in_buff variable) has not been accounted for when calculating number of bytes to copy from the message to qemud buffer. This caused data corruption, because number of bytes copied has exceeded the capacity of qemud buffer. Also, off_in_buff has not been reset when switching to the next qemud buffer. Also fixed _qemud_char_service_connect routine to accept a client parameter string Change-Id: I2f5a7ca5924c0b79d8755f4777145044567f3e8d
* Add hw.gpu.enabled hardware propertyDavid 'Digit' Turner2011-08-298-3/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new hardware property to enable GPU emulation (named hw.gpu.enabled). It is currently disabled by default. It also modifies the UI code to display the GL output properly inside the UI window. And sets the kernel parameter qemu.gles to either 0 or 1 to indicate to the guest system's GLES libraries whether to use GPU emulation or fallback to the software renderer. A future patch will also add auto-detection of desktop GL capabilities. For example, if the emulator is started on a headless server without an X11/GL display, hw.gpu.enabled will be forced to 'no', forcing the guest to use the software renderer. Another patch will allow to change the property from the command-line for debugging purpose. NOTE: If you want to test GPU emulation, change the default value of the property in android/avd/hardware-properties.ini from 'no' to 'yes'. You will need to run a ToT master AOSP tree with the following pending patches applied: https://review.source.android.com/25797 https://review.source.android.com/25154 https://review.source.android.com/25759 Change-Id: I1fa3512be24395244fd5068f2bf59ad54db5c7d5
* Fix a crash when GPU emulation doesn't work.David 'Digit' Turner2011-08-291-10/+12
| | | | | | | This patch fixes a simple segmentation fault in the case where we can't connect to the GPU emulation rendering library. Change-Id: I47df0cae9029aee4738fd89083750e3baca5f032
* Fix premature boot-properties service disconnect.Vladimir Chtchetkine2011-08-271-1/+0
| | | | Change-Id: I746147ab0c441a05055f7fc878eda3e035c0da14
* Enable qemud clients to pass connection parameters to emulator.Vladimir Chtchetkine2011-08-255-20/+83
| | | | | | | | | | | | This is useful for qemud pipe clients to be able to pass parameters to the emulator service when connecting. In particular, this would be extremely useful for camera emulation clients, which can pass name of the camera device, and other parameters that may be required to connect to the camera. Parameters are passed when opening the qemud pipe in form: /dev/qemu_pipe/camera:/dev/video0 I.e. parameters follow the service name, separated from it by ':' Change-Id: I67f0ef0ff27008e2b52652e58d72d5216b244646
* Fix qemu pipe's 'poll' callbacksVladimir Chtchetkine2011-08-252-4/+4
| | | | | | | | | Throughout emulator's code pipe's 'poll' callback was returning PIPE_WAKE_XXX, instead of PIPE_POLL_XXX flags. This created whole sort of issues with the qemu pipe service <-> client communications. This is also a fix for http://b/issue?id=5196348 Change-Id: I92202cf4ef4554559eb022c4410ee93923edec1b
* Merge "Fix the darwin build"Vladimir Chtchetkine2011-08-242-2/+5
|\