406 Commits

Author SHA1 Message Date
Andreas Huber
76bd517ed2 am 05eca1d4: Merge change Ie80e2381 into eclair
Merge commit '05eca1d46a45723a57899dabad698537b7faef82' into eclair-plus-aosp

* commit '05eca1d46a45723a57899dabad698537b7faef82':
  DO NOT MERGE: Squashed commit of the following:
2009-11-05 13:58:55 -08:00
Andreas Huber
dcaa220ff5 DO NOT MERGE: Squashed commit of the following:
commit 08259dd3dc9026887f9bbfedaf45866eb56ea9bc
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 5 12:02:31 2009 -0800

    DO NOT MERGE: Use PV for metadata extraction even if stagefright is used for playback.

commit 991832fe4dc012e51d3d9ed8d647c7f09991858f
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 5 11:24:11 2009 -0800

    DO NOT MERGE: Do not assert if we encounter OMX_StateInvalid. All bets are off though.

commit cec45cf302d9218fe79956cbe8a462d7ca3a10bb
Author: Andreas Huber <andih@google.com>
Date:   Mon Oct 26 16:11:54 2009 -0700

    DO NOT MERGE: When freeing an OMX node, attempt to transition it from its current state all the way to "Loaded" in order to properly free any allocated buffers.

commit 34a1e885ef9113d68acbc26d36fcc47fdebbed84
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 5 11:10:49 2009 -0800

    DO NOT MERGE: Fix heap corruptin in OMXNodeInstance.

commit 5a47f7439a1298b330541a7e4e647a8b44487388
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 5 11:08:19 2009 -0800

    DO NOT MERGE: Fix seek-on-initial-read behaviour of OMXCodec.

commit 45bed64722501b9f411a2940aff5aff4cc4d2e98
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 5 11:02:23 2009 -0800

    DO NOT MERGE: Renaming string.h to stagefright_string.h to avoid conflicts.

commit 6738e306a50196f31a73d4fc7b7c45faff639903
Author: Andreas Huber <andih@google.com>
Date:   Thu Oct 15 13:46:54 2009 -0700

    DO NOT MERGE: Reimplement the OMX backend for stagefright.

    Besides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.

    Changed APIs to conform to the rest of the system.
2009-11-05 13:06:17 -08:00
Eric Laurent
d889f189b5 am 67b69292: Merge change I93f500a5 into eclair
Merge commit '67b692920c18f99b096dce285adc6f7439fa866c' into eclair-plus-aosp

* commit '67b692920c18f99b096dce285adc6f7439fa866c':
  Fix issue 2203561: Sholes: audio playing out of earpiece.
2009-11-05 00:01:50 -08:00
Android (Google) Code Review
67b692920c Merge change I93f500a5 into eclair
* changes:
  Fix issue 2203561: Sholes: audio playing out of earpiece.
2009-11-05 02:55:26 -05:00
Eric Laurent
bda7469d9b Fix issue 2203561: Sholes: audio playing out of earpiece.
Create a new IAudioTrack interface to AudioFlinger when start() fails due to a broken pipe error.
Do the same if start fails due to the same error after time out in obtainBuffer().
Do not indicate that the AudioTrack is started to AudioPolicyManager if IAudioTrack start fails.
This avoids that an AudioTrack keeps a dead IAudioTrack after a media server crash.

Same modifications for AudioRecord.

Add a flag to ToneGenerator indicating that the callback thread can call Java. Without it, when the media server crashes and restarts, the AudioSystem error callback will crash in JNI if the IAudiotrack is created from AudioTrack callback thread.
2009-11-04 23:47:21 -08:00
Jean-Michel Trivi
39995fdf31 am 7ed0ceeb: Merge change I6869df3a into eclair
Merge commit '7ed0ceeba54712f76e9a4f2dd4c9197d76813488' into eclair-plus-aosp

* commit '7ed0ceeba54712f76e9a4f2dd4c9197d76813488':
  Add new audio sources to support the A1026 recording configurations.
2009-11-04 12:05:45 -08:00
Jean-Michel Trivi
6869df3a5d Add new audio sources to support the A1026 recording configurations. 2009-11-03 19:43:21 -08:00
Mathias Agopian
b87e3eb933 am 8637759a: Merge change I36d0184e into eclair
Merge commit '8637759a1d34a4adda292579d5f8790587659235' into eclair-plus-aosp

* commit '8637759a1d34a4adda292579d5f8790587659235':
  fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
2009-11-03 09:33:22 -08:00
Android (Google) Code Review
8637759a1d Merge change I36d0184e into eclair
* changes:
  fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
2009-11-02 21:26:54 -05:00
Mathias Agopian
36d0184e08 fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
we lost the concept of vertical stride when moving video playback to EGLImage.
Here we bring it back in a somewhat hacky-way that will work only for the
softgl/mdp backend.
2009-11-02 17:48:33 -08:00
Iliyan Malchev
d7b4cbe5be am d4649b2f: Merge change Ibaef6141 into eclair
Merge commit 'd4649b2f8ea8285a4eb3c47e87520c7835e6c672' into eclair-plus-aosp

* commit 'd4649b2f8ea8285a4eb3c47e87520c7835e6c672':
  libbinder: add a NO_CACHING flag to MemoryHeapBase
2009-11-02 15:02:03 -08:00
Android (Google) Code Review
d4649b2f8e Merge change Ibaef6141 into eclair
* changes:
  libbinder: add a NO_CACHING flag to MemoryHeapBase
2009-11-02 17:55:43 -05:00
Eric Laurent
7cd4f2523f am ee98c240: Merge change I73680cd9 into eclair
Merge commit 'ee98c24020c1634b02cde6d333968f04a0de941f' into eclair-plus-aosp

* commit 'ee98c24020c1634b02cde6d333968f04a0de941f':
  Fix 2194140: [Passion] Support Audience chip.
2009-11-02 12:40:28 -08:00
Android (Google) Code Review
ee98c24020 Merge change I73680cd9 into eclair
* changes:
  Fix 2194140: [Passion] Support Audience chip.
2009-11-02 15:34:28 -05:00
Dianne Hackborn
efb752570e am b6a6791f: Merge change I60413727 into eclair
Merge commit 'b6a6791f381691d4a58fe6972eb9f0b65308ac1f' into eclair-plus-aosp

* commit 'b6a6791f381691d4a58fe6972eb9f0b65308ac1f':
  Fix issue #2226370: Resource versions match with equality
2009-11-02 10:52:30 -08:00
Eric Laurent
f22a0975c4 Fix 2194140: [Passion] Support Audience chip.
Added new input device DEVICE_IN_BACK_MIC.
Added new audio source AUDIO_SOURCE_CAMCORDER.
2009-11-02 10:38:22 -08:00
Dianne Hackborn
553399518f Fix issue #2226370: Resource versions match with equality
Also fixed turned-around increment of version number for resources. :(

Change-Id: I604137272da984bcd69cee4f174e6b7f2c786e46
2009-11-01 21:16:59 -08:00
Iliyan Malchev
baef6141a3 libbinder: add a NO_CACHING flag to MemoryHeapBase
The NO_CACHING flag translates to opening a memory region with O_SYNC.

Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-30 18:35:47 -07:00
Wu-cheng Li
e9f91e2372 am 4cb04c46: Use image rect information to display zoomed picture.
Merge commit '4cb04c4654e9718a73b378e7b9962dee454efa8d' into eclair-plus-aosp

* commit '4cb04c4654e9718a73b378e7b9962dee454efa8d':
  Use image rect information to display zoomed picture.
2009-10-28 23:35:53 -07:00
Wu-cheng Li
4cb04c4654 Use image rect information to display zoomed picture. 2009-10-29 13:20:26 +08:00
Mathias Agopian
59b2ee0dfd am 73e17015: Merge change I8d2de438 into eclair
Merge commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694' into eclair-plus-aosp

* commit '73e17015d3cd67c93ccad5d63d31c439ff6fa694':
  fix [2143798] Need to figure out how to do video
2009-10-27 23:48:38 -07:00
Mathias Agopian
9042b4564d fix [2143798] Need to figure out how to do video
Use EGLImageKHR instead of copybit directly.
    We now have the basis to use streaming YUV textures (well, in fact
    we already are). When/if we use the GPU instead of the MDP we'll
    need to make sure it supports the appropriate YUV format.

    Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported
2009-10-27 13:13:29 -07:00
Eric Laurent
0c4ba3e1a4 am bf96aaad: Merge change Icf10db28 into eclair
Merge commit 'bf96aaadd46fb5b0884070177faa16ec4f22e2ba' into eclair-plus-aosp

* commit 'bf96aaadd46fb5b0884070177faa16ec4f22e2ba':
  Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
2009-10-24 01:38:49 -07:00
Eric Laurent
415f3e2875 Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
Added setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.
Removed call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().
2009-10-21 12:29:37 -07:00
Andreas Huber
bfe2a8f3ed am ca404dfb: Merge change Ie3ffb526 into eclair
Merge commit 'ca404dfb920ab009cef4db5e74715b796f79b3f9' into eclair-plus-aosp

* commit 'ca404dfb920ab009cef4db5e74715b796f79b3f9':
  do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.
2009-10-20 13:02:05 -07:00
Andreas Huber
f16a0b7399 do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.
Add a quirk mode to OMXCodec that makes it aware of this fact for proper display. Also integrate back a change from eclair-mr2 that delays releasing an output buffer briefly after posting it to surface flinger, as we don't know how long it'll take it to actually display the buffer's content.
2009-10-20 11:49:01 -07:00
Mathias Agopian
22ba121b59 am 7bb7e992: Merge change Ia8ac904d into eclair
Merge commit '7bb7e99216956d917af1786a3e02a92cac46fc84' into eclair-plus-aosp

* commit '7bb7e99216956d917af1786a3e02a92cac46fc84':
  fix [2182249] [MR1] valgrind error in surface flinger
2009-10-16 14:32:27 -07:00
Mathias Agopian
a8ac904d97 fix [2182249] [MR1] valgrind error in surface flinger 2009-10-15 18:08:15 -07:00
Mathias Agopian
848a42e371 am a2de8e31: Merge change Ie05f07df into eclair
Merge commit 'a2de8e31c2693d009db1f9386406758874dd1d40' into eclair-plus-aosp

* commit 'a2de8e31c2693d009db1f9386406758874dd1d40':
  fix [2170319] gmail bulk operation checkbox latency on passion
2009-10-07 17:34:19 -07:00
Mathias Agopian
e05f07dffa fix [2170319] gmail bulk operation checkbox latency on passion
This also fixes [2152536] ANR in browser

When SF is enqueuing buffers faster than SF dequeues them.
The update flag in SF is not counted and under some situations SF will only
dequeue the first buffer. The state at this point is not technically
corrupted, it's valid, but just delayed by one buffer.

In the case of the Browser ANR, because the last enqueued buffer was delayed
the resizing of the current buffer couldn't happen.

The system would always fall back onto its feet if anything -else- in
tried to draw, because the "late" buffer would be picked up then.
2009-10-07 16:44:10 -07:00
Mathias Agopian
f7b504f6ab am 26fe45dc: Merge change I4961c959 into eclair
Merge commit '26fe45dcb3df12eda94d93f1473cd6a2f5f345c7' into eclair-plus-aosp

* commit '26fe45dcb3df12eda94d93f1473cd6a2f5f345c7':
  fix [2152536] ANR in browser
2009-10-07 11:59:52 -07:00
Eric Laurent
555e032b1a am 62443f5f: Fix issue 2139634: DTMF tones on Sholes popping, hissing (audio latency too high).
Merge commit '62443f5f4517ba17d911975e695f1ab75bfdbf77' into eclair-plus-aosp

* commit '62443f5f4517ba17d911975e695f1ab75bfdbf77':
  Fix issue 2139634: DTMF tones on Sholes popping, hissing (audio latency too high).
2009-10-07 11:59:45 -07:00
Mathias Agopian
89663e6f4d am 9d6a685b: Merge changes I430cf57b,I51f02f67,I464f13f3 into eclair
Merge commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb' into eclair-plus-aosp

* commit '9d6a685ba939f413a8d3e1e97627593aa1cdf6cb':
  fix [2168528] enable glTexImage2D code path in SF for software-only buffers
  fix [2168531] have software-only gralloc buffer side-step the HAL
  fix [2167050] glTexImage2D code path buggy in SurfaceFlinger
2009-10-07 11:59:27 -07:00
Wu-cheng Li
1dc8267389 am 962f2536: Merge change I547cff66 into eclair
Merge commit '962f253665e0c5cc8a29de9e59ce3992dad02440' into eclair-plus-aosp

* commit '962f253665e0c5cc8a29de9e59ce3992dad02440':
  Add zoom functions and sendCommand.
2009-10-07 11:56:00 -07:00
Marco Nelissen
38729e69ad am c39d2e3c: Music visualizer support hack. This currently assumes 44k stereo (won\'t crash on other formats, but won\'t give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.
Merge commit 'c39d2e3c012fb96999991e30659a474f9f30f789' into eclair-plus-aosp

* commit 'c39d2e3c012fb96999991e30659a474f9f30f789':
  Music visualizer support hack.
2009-10-07 11:52:39 -07:00
Mathias Agopian
ba4f5d020c am f8e4bc9f: Merge change I0c4cec7e into eclair
Merge commit 'f8e4bc9f7789b98b54fe04df56555ca8c630df70' into eclair-plus-aosp

* commit 'f8e4bc9f7789b98b54fe04df56555ca8c630df70':
  Attempt to fix [2152536] ANR in browser
2009-10-07 11:42:52 -07:00
Android (Google) Code Review
26fe45dcb3 Merge change I4961c959 into eclair
* changes:
  fix [2152536] ANR in browser
2009-10-06 22:10:17 -04:00
Mathias Agopian
4961c959ae fix [2152536] ANR in browser
A window is created and the browser is about to render into it the
very first time, at that point it does an IPC to SF to request a new
buffer. Meanwhile, the window manager removes that window from the
list and the shared memory block it uses is marked as invalid.
However, at that point, another window is created and is given the
same index (that just go freed), but a different identity and resets
the "invalid" bit in the shared block. When we go back to the buffer
allocation code, we're stuck because the surface we're allocating for
is gone and we don't detect it's invalid because the invalid bit has
been reset.

It is not sufficient to check for the invalid bit, I should
also check that identities match.
2009-10-06 19:00:57 -07:00
Eric Laurent
62443f5f45 Fix issue 2139634: DTMF tones on Sholes popping, hissing (audio latency too high).
This change is a complement to the main fix in kernel driver for the same issue (partner change #1250).
It removes clicks sometimes heard after the end of the tones while audio flinger is sending 0s to the audio output stream.
The problem was that the sleep time between two writes was more than the duration of one audio output stream buffer which could cause some underrun.

Also fixed a recent regression in ToneGenerator that made that the end of previous tone was repeated at the beginning of current one under certain timing circumstances when the maximum tone duration was specified.
2009-10-06 18:59:35 -07:00
Mathias Agopian
6f5f5a095a fix [2168531] have software-only gralloc buffer side-step the HAL 2009-10-06 17:00:25 -07:00
Mathias Agopian
6950e428fe fix [2167050] glTexImage2D code path buggy in SurfaceFlinger
When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.

Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.

This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
2009-10-06 17:00:25 -07:00
Wu-cheng Li
36f68b8f24 Add zoom functions and sendCommand.
b2060030
2009-10-06 13:25:10 -07:00
Marco Nelissen
c39d2e3c01 Music visualizer support hack.
This currently assumes 44k stereo (won't crash on other formats, but won't give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.
2009-10-06 08:51:16 -07:00
Mathias Agopian
0c4cec7e4d Attempt to fix [2152536] ANR in browser
The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable.
When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return
immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT.

This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status
in all code paths where a surface is removed from the list.

Additionaly added more information in the logs, should this happen again.
2009-10-02 18:12:30 -07:00
Wu-cheng Li
90b4a93271 am fe1a86df: Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH.
Merge commit 'fe1a86df8b1c23e3290f96dce69984bf979a462b' into eclair-plus-aosp

* commit 'fe1a86df8b1c23e3290f96dce69984bf979a462b':
  Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH.
2009-09-28 14:13:11 -07:00
Wu-cheng Li
fe1a86df8b Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH. 2009-09-28 13:51:59 -07:00
Wu-cheng Li
3af65a075a am 8de57d8f: Add camera parameter key constants and documentation.
Merge commit '8de57d8fa346522404c2064a78e8f24a5aa3bf23' into eclair-plus-aosp

* commit '8de57d8fa346522404c2064a78e8f24a5aa3bf23':
  Add camera parameter key constants and documentation.
2009-09-25 14:34:58 -07:00
Wu-cheng Li
8de57d8fa3 Add camera parameter key constants and documentation. 2009-09-25 14:23:56 -07:00
Eric Laurent
df9879bf1f am e9bd4788: Merge change 26881 into eclair
Merge commit 'e9bd4788d4370714374d833aed1339d17c5ded09' into eclair-plus-aosp

* commit 'e9bd4788d4370714374d833aed1339d17c5ded09':
  Fix issue 2142613: ToneGenerator: short tones sometimes don't play on sholes or over A2DP.
2009-09-25 00:43:43 -07:00
Eric Laurent
af141d529f Fix issue 2142613: ToneGenerator: short tones sometimes don't play on sholes or over A2DP.
When the AudioTrack callback notification size is relatively high (Which is the case on Sholes and over A2DP), it is likely that the end of tone is reached during the first callback. In this case, the AudioTrack is stopped before exiting the callback which causes 2 problems:
- 1: If the AudioFlinger thread is scheduled before we exit the ToneGenerator callback, the track can be stopped and reset before the data is actually marked as present in the buffer by the AudioTrack callback => no audio will be processed by AudioFlinger.
- 2: In this case, the data write index in the AudioTrack buffer is incremented after the track was reset by the AudioFlinger which leaves unplayed data in the buffer. This data will be played the next time the AudioTrack is started if not flushed in between.

The fix consists in adding an intermediate state to ToneGenerator state machine so that we exit the callback function when the stop condition is reached and stop the AudioTrack the next time we execute the callback.
2009-09-24 23:49:40 -07:00