3463 Commits

Author SHA1 Message Date
Jason Sams
3ac60ada27 Merge "Add slot number to forEach hal." 2011-07-13 12:28:38 -07:00
Jason Sams
92b0eab07e Add slot number to forEach hal.
Change-Id: I0f2992d5f4128422d07f897b335c219cc7f1d02c
2011-07-13 11:26:26 -07:00
Alex Sakhartchouk
5b7da3d3df Merge "Fix for the renderscript ref counting bug." 2011-07-12 16:27:09 -07:00
Alex Sakhartchouk
4b013ee9b7 Fix for the renderscript ref counting bug.
This only manifested itself in the situations where elements containing multiple ref counted objects were copied from Java.

Change-Id: I2c1cc89fe7f792259b3f033674142eb33d17a507
2011-07-12 13:25:14 -07:00
Jeff Brown
8c55a9a57e Merge "Remove the simulator target from all makefiles. Bug: 5010576" 2011-07-12 12:15:07 -07:00
Jeff Brown
bd882b1c87 Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
2011-07-11 22:12:16 -07:00
Mathias Agopian
e92963c3f9 Merge "Fix typo in an assert's log" 2011-07-11 18:30:29 -07:00
Mathias Agopian
cf7e3a5984 Fix typo in an assert's log
Change-Id: I94883a23a0a92eaf3e4976f942f747a2137499ac
2011-07-11 16:26:18 -07:00
Jamie Gennis
308f9f6b24 Merge "EGL: fix the ANativeWindow size/fmt override" 2011-07-11 15:47:20 -07:00
Jeff Brown
501c4671e7 Merge "Eliminate single-process mode. Bug: 5010576" 2011-07-11 13:37:53 -07:00
Jamie Gennis
97eae025ad EGL: fix the ANativeWindow size/fmt override
This change fixes how the Android EGL layer overrides the size and
format of an ANativeWindow in eglCreateWindowSurface.  The new behavior
is to leave the size untouched when overriding the format.  The previous
behavior was to reset the ANativeWindow to use the default size set by
the ANativeWindow implementation.

It also adds two new 'perform' methods to the ANativeWindow interface:
set_buffers_dimensions and set_buffers_format, and redefines the
behavior of set_buffers_geometry to be the combination of these two new
methods.

Additionally, this change adds an error check for the return value of
the new native_window_set_buffers_format call, which required adding a
(stub) handler for to FramebufferNativeWindow.

Change-Id: I805c7ccd8d4730dfb132d10d8bc3fb058a0b9df1
2011-07-11 12:31:45 -07:00
Logan Chien
ef72ff220c Use resource entry name instead of mangled name.
Change-Id: I833fa1b529fe505ce20ede12b7f4b5952a6ac1f0
2011-07-11 15:32:24 +08:00
Logan Chien
e723caee39 Fix typo: mFieldCount -> mPragmaCount.
Change-Id: I081a521c13a78bc5ec1bf9faecb066bed5ca8ab4
2011-07-11 07:57:24 +08:00
Jeff Brown
10e8971286 Eliminate single-process mode.
Bug: 5010576

Change-Id: Id450dc83efed4897d1e4ff451530fed14457aace
2011-07-08 19:54:07 -07:00
Romain Guy
3b240117d1 Merge "Align paths on pixel boundaries when rasterizing in bitmaps. Bug #5003739" 2011-07-08 16:53:23 -07:00
Romain Guy
40c4b86b72 Align paths on pixel boundaries when rasterizing in bitmaps.
Bug #5003739

Change-Id: I3dfbf4eb92e2c870f33c96947a7d6439e3730965
2011-07-08 16:50:15 -07:00
Mathias Agopian
1861786a97 Fix EGLUtils::selectConfigForPixelFormat()
- renderscript now calls EGL directly instead of relying on this function
- surfaceflinger also does its own EGLConfig selection
- selectConfigForPixelFormat stays for legacy reason (many tests use it) but
it now only tries to match the alpha channel of the format rather than the
format itself.

this will allow implementations who don't support the exact formats
defined in the HAL to work properly.

Bug: 4998223

Change-Id: Ic664dfc14d5072a514b6f77a115d1521bfc1578f
2011-07-08 14:37:05 -07:00
Romain Guy
44476779ae Merge "Correctly position layers." 2011-07-08 11:58:18 -07:00
Romain Guy
b2479153b7 Correctly position layers.
Change-Id: I1678b1c5bdab140b44e56556c50ab8329255f18a
2011-07-08 11:57:29 -07:00
Romain Guy
e92096fa6a Merge "Use NEAREST filtering mode for TextureView.getBitmap()." 2011-07-07 21:28:41 -07:00
Romain Guy
ec19b4a764 Use NEAREST filtering mode for TextureView.getBitmap().
Change-Id: I4649062bbdf18ebba7924bdf578f39ad8f6576ac
2011-07-07 21:27:14 -07:00
Romain Guy
69abbd8791 Merge "Use NEAREST filtering for layers whenever possible." 2011-07-07 20:55:08 -07:00
Romain Guy
9ace8f5e79 Use NEAREST filtering for layers whenever possible.
Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
2011-07-07 20:50:11 -07:00
Jamie Gennis
19a695c477 Merge "SurfaceTexture: enable newly passing tests." 2011-07-07 14:42:12 -07:00
Jamie Gennis
413b3f7382 SurfaceTexture: enable newly passing tests.
This change enables the following four SurfaceTextures tests:
  UpdateTexImageBeforeFrameFinishedWorks
  UpdateTexImageAfterFrameFinishedWorks
  RepeatedUpdateTexImageBeforeFrameFinishedWorks
  RepeatedUpdateTexImageAfterFrameFinishedWorks

Change-Id: I7632630bc97873e50d4a765ffc44a86f16ae62f1
2011-07-06 14:47:47 -07:00
Glenn Kasten
5161eb7b23 Merge "Add Thread::join" 2011-07-06 11:37:53 -07:00
Mathias Agopian
7893c5e83c Merge "fix ScreenshotsOfProtectedBuffersFail" 2011-07-06 11:10:06 -07:00
Mathias Agopian
7eef784ea9 Merge "return an error code with gralloc buffer allocation failures" 2011-07-06 11:09:55 -07:00
Glenn Kasten
4431c05f13 Merge "Thread ID zero for androidSetThreadSchedulingGroup" 2011-07-05 15:08:31 -07:00
Mathias Agopian
994e7619a6 fix ScreenshotsOfProtectedBuffersFail
- put the test window at the front most screen position
- use RGBA_8888 which is a mandatory format
- handle devices that don't support the protected usage flags

Bug: 4950464

Change-Id: I0005fb667cfe094e5978816e2924b294c5ef817e
2011-07-01 15:41:32 -07:00
Mathias Agopian
eec0f7ebac return an error code with gralloc buffer allocation failures
Change-Id: I471e5d37ea7a42fc8a0f93446ee3b4229da37807
2011-07-01 14:53:49 -07:00
Pannag Sanketi
ea458f190b Merge "Minor fix in SurfaceTexture" 2011-06-30 18:38:18 -07:00
Pannag Sanketi
c9ec69eb6f Minor fix in SurfaceTexture
Change-Id: Ic859715becf3e6d5107bd8beb8c577034d00ec52
2011-06-30 15:41:19 -07:00
Mathias Agopian
272aaa382f Merge "SF transactions are now O(1) wrt IPC instead of O(N)." 2011-06-29 16:15:56 -07:00
Mathias Agopian
439863f3b3 SF transactions are now O(1) wrt IPC instead of O(N).
Change-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43
2011-06-29 15:05:41 -07:00
Jason Simmons
9e1fb41b4f Merge "Add a linear transform library to libutils" 2011-06-29 13:48:39 -07:00
Jeff Brown
e9e860762b Merge "Improve input event consistency invariants." 2011-06-28 20:17:59 -07:00
Jeff Brown
8134681b25 Improve input event consistency invariants.
Fixed some issues where inconsistent streams of events could
be generated by the dispatcher, particularly when switching from
hovering with one device to hovering with another.

Fixed a bug where the touch pad would fail to generate a new
HOVER_MOVE following a tap event.  As a result, the hover event
stream would not resume until the user touched the touch pad
again.

Change-Id: I444dce84641fb12e56a0af84c931520771d6c493
2011-06-28 20:10:40 -07:00
Jason Simmons
aa11965bd5 Add a linear transform library to libutils
Change-Id: Icdec5a6bebd9d8f24b3f335f8ec8b09a5810a774
2011-06-28 17:43:30 -07:00
Jamie Gennis
2a319a03b5 Merge "SurfaceTexture: add a CPU -> GL sync test." 2011-06-28 14:27:17 -07:00
Romain Guy
8229b467fc Merge "Fix parameter order evaluation issue." 2011-06-28 14:03:20 -07:00
Romain Guy
9ff3cb57ee Fix parameter order evaluation issue.
This problem was affecting Android builds with gcc/x86.

Change-Id: Ibb7978413c89bd1ac09f0d1ea78f5cb4fe61f6ed
2011-06-28 14:02:11 -07:00
Jamie Gennis
1b62309831 SurfaceTexture: add a CPU -> GL sync test.
This change adds a test to verify that proper synchronization is done
when using SurfaceTexture to use CPU generated images as OpenGL ES
textures in 'synchronous mode'.  Synchronous mode is particularly tricky
because SurfaceTexture will allow the buffer that's currently bound to
the GL texture to be dequeued.  We rely on Gralloc's lock function to
block until this buffer is no longer being used by the OpenGL ES.

Change-Id: I1c4e37f3e9d60ab9a0905a90a1f5060fda8e485c
2011-06-28 13:18:07 -07:00
Jamie Gennis
3cf7cf5751 Merge changes I9fb59763,I8b2c6e00
* changes:
  SurfaceTexture: consume buffers after err checks
  SurfaceTexture: change onFrameAvailable behavior
2011-06-28 12:55:03 -07:00
Andy McFadden
84e297238f Remove native EventRecurrence parser
Switch over to the new parser.

Bug 4575374

Change-Id: If78d8042fb266182900398f7fc464a048c779966
2011-06-28 07:43:27 -07:00
Mathias Agopian
0dd593f223 PermissionCache caches permission checks
This is intended to absorb the cost of the IPC
to the permission controller.
Cached permission checks cost about 3us, while
full blown ones are two orders of magnitude slower.

CAVEAT: PermissionCache can only handle system
permissions safely for now, because the cache is
not purged upon global permission changes.

Change-Id: I8b8a5e71e191e3c01e8f792f253c379190eee62e
2011-06-27 17:42:15 -07:00
Jamie Gennis
9fb5976367 SurfaceTexture: consume buffers after err checks
This change moves the point at which queued buffers get consumed to
after any error checks that could cause updateTexImage to fail.  This
way, if updateTexImage returns an error the buffer remains queued.
2011-06-27 15:45:40 -07:00
Jamie Gennis
bd5404d031 SurfaceTexture: change onFrameAvailable behavior
This change alters the conditions under which the onFrameAvailable
callback gets called by the C++ SurfaceTexture class.  The new behavior
is to call the callback whenever a frame gets queued that will be
visible to the buffer consumer.  This means that buffers queued in
synchronous mode always trigger the callback, as those buffers will
remain pending until they are consumed.  Buffers queued in asynchronous
mode will only trigger the callback if there was not previously an
unconsumed buffer pending.

The new behavior means that a consumer should perform a draw operation
exactly once for every onFrameAvailable call that it recieves.  This
change also modifies SurfaceFlinger and the SurfaceTexture JNI to
support of the new behavior.

Change-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40
2011-06-27 15:45:39 -07:00
Anu Sundararajan
f24c4cd0f2 MemoryHeapBase: Save and binderize the offset
The offset that is used in the creation of the MemoryHeapBase must be saved, so
that it can be used to recreate the Heap when an IMemory object is passed
across process boundary through the binder.

Change-Id: Ie618fb5c0718e6711f55ed9235616fd801e648dc
Signed-off-by: Anu Sundararajan <sanuradha@ti.com>
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-06-27 13:48:51 -07:00
Wu-cheng Li
42419ce28a Add framework support for camcorder zoom.
The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.

Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.

ICameraRecordingProxy
  startRecording()
  stopRecording()
  releaseRecordingFrame()

ICameraRecordingProxyListener
  dataCallbackTimestamp()

The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the
recording.

The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
   (1) The app: MediaRecorder.start().
   (2) The recorder: ICamera.unlock() and ICamera.disconnect().
   (3) The recorder: ICameraRecordingProxy.startRecording().
   (4) The app: ICamera.reconnect().
   (5) The app: ICamera.startRecording().
4. During recording
   (1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
   (2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
   (1) The app: MediaRecorder.stop()
   (2) The recorder: ICameraRecordingProxy.stopRecording().
   (3) The app: ICamera.stopRecording().

bug:2644213

Change-Id: I15269397defc25cbbcae16abc071c8349c123122
2011-06-27 15:44:57 +08:00