Merge commit 'a5402dabec84eabcdb9008dc343dd67de325bbac' into gingerbread-plus-aosp
* commit 'a5402dabec84eabcdb9008dc343dd67de325bbac':
OBB API for PackageManager
Merge commit 'f3f25bf80b7d21f12442da8f82d17c79dd371692' into gingerbread-plus-aosp
* commit 'f3f25bf80b7d21f12442da8f82d17c79dd371692':
Added some javadoc to Camera.takePicture()
Merge commit '4b9baa69f3b3146edbc623f0670103265c4f4fe5' into gingerbread-plus-aosp
* commit '4b9baa69f3b3146edbc623f0670103265c4f4fe5':
Doc change: Add revision notes for Android 2.2_r2 development platform. Fix some umappable characters in WebView class doc.
Merge commit '2651504c020f07847bafa3d539c36f1396629669' into gingerbread
* commit '2651504c020f07847bafa3d539c36f1396629669':
Doc change: Add revision notes for Android 2.2_r2 development platform. Fix some umappable characters in WebView class doc.
Merge commit 'c42433427a7ed51b5577b2587bf6cb0af903ebf8' into gingerbread-plus-aosp
* commit 'c42433427a7ed51b5577b2587bf6cb0af903ebf8':
Allow application to set two more encoding paramters: video profile and level
Merge commit '58c35573cc677b736efefa267eba8727d4411999' into gingerbread-plus-aosp
* commit '58c35573cc677b736efefa267eba8727d4411999':
Fix some bugs in the MediaProfileReader
Merge commit 'c34c8c3fe7fef15b410b0544d5436fcbefccd610' into gingerbread-plus-aosp
* commit 'c34c8c3fe7fef15b410b0544d5436fcbefccd610':
Only send the playback complete notification if a) an error occurred on any track or b) all tracks have finished playing. The previous behaviour was to send the notification as soon as the first track finished playing.
Merge commit 'ef52b5682d8c6ab3a384da5151f0e4dd6e9a5506' into gingerbread-plus-aosp
* commit 'ef52b5682d8c6ab3a384da5151f0e4dd6e9a5506':
More improvements to the SensorManager documentation
The visualizer enables application to retrieve part of the currently playing audio for visualization purpose.
It is not an audio recording interface and only returns partial and low quality audio content as a waveform or
a frequency representation (FFT).
Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.
This commit also includes a change in AudioEffect class:
- the enable()/disable() methods have been replaced bya more standard setEnabled() method.
- some fixes in javadoc
Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
Merge commit '2e6aff8e19ce8292a36fe211f8051dccf1fb9670' into gingerbread-plus-aosp
* commit '2e6aff8e19ce8292a36fe211f8051dccf1fb9670':
ALooperRoster no longer holds strong references to handlers and loopers.
Merge commit '6615defd4b8ae627e7f0bbb2382c4d86481f76bd' into gingerbread-plus-aosp
* commit '6615defd4b8ae627e7f0bbb2382c4d86481f76bd':
Make sure the OMX callback thread is properly shutdown after the node goes away.
Merge commit '9406f626b2d8f64a084d41f6ea379e539b162a55' into gingerbread-plus-aosp
* commit '9406f626b2d8f64a084d41f6ea379e539b162a55':
An AHandler can now find its associated ALooper.
Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.
Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
This allows us to avoid exposing the file descriptor of
the event queue; instead, you attach an event queue to
a looper. This will also should allow native apps to be
written without the need for a separate thread, by attaching
the event queue to the main thread's looper and scheduling
their own messages there.
Change-Id: I38489282635895ae2cbfacb88599c1b1cad9b239
Merge commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d' into gingerbread-plus-aosp
* commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d':
Fix a bug that prevented the creation of EGL shared contexts.
Merge commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e' into gingerbread-plus-aosp
* commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e':
Add an option to ALooper::start that allows it to call back into java or not.
Merge commit '3ef6ebe874022c4ec8fbb00067833a6f636c1e2f' into gingerbread-plus-aosp
* commit '3ef6ebe874022c4ec8fbb00067833a6f636c1e2f':
Flush binder buffer after setting raw heap to avoid leaking a reference.
Merge commit '7df7447112371fb5e46f6084b55ac2ccdfde139d' into gingerbread
* commit '7df7447112371fb5e46f6084b55ac2ccdfde139d':
Flush binder buffer after setting raw heap to avoid leaking a reference.
The problem was:
1. In handleShutter(), thread A in CameraService calls
registerBuffers(IMemoryHeap) and it's received by thread B
in system_server. [transaction 1]
2. While thread A is waiting for the reply, thread B calls
back to thread A to get the id of the heap
(IMemoryHeap.getHeapID). [transaction 2]
3. Thread A replies transaction 2 and is preemptied in kernel.
Thread B gets the reply and finishes registerBuffers and send
reply for transaction 1.
4. When thread A runs again, it gets the reply for transaction 1
and returns to handleShutter().
5. At this point the transaction buffer for transaction 2 (which
holds a reference to IMemoryHeap) is not freed because the
BC_FREE_BUFFER command is kept in thread A's local command
queue and not sent to the kernel.
6. Normally when thread A makes next transaction, the
BC_FREE_BUFFER command will be sent together (piggyback) with
the commands for that transaction. But in this case thread A
is a callback thread from camera driver, so it does not make
any binder calls afterwards, and the IMemoryHeap is never freed
(until the next time handleShutter is called).
Change-Id: I435a258187509bdbbaf353339eb9ea577610cbd2