524 Commits

Author SHA1 Message Date
Dave Sparks
66d28cedd9 Fix SoundPool buffer size rounding error. Bug 2327620.
AudioTrack was modified earlier to calculate minimum buffer size
based on the hardware reported latency. Previously, it was a
hard-coded value. As a result of this change, the minimum buffer
size is now variable based on hardware latency. On Passion, this
brought out a subtle rounding error in the buffer size calculation
in SoundPool. This can cause AudioTrack creation to fail based on
the requested sample rate. This fix calculates the total buffer
size first, and then does rounding before dividing by the number
of buffers.
2009-12-14 21:48:17 -08:00
Dave Sparks
14f8940472 Fix media player decode function. Bug 2317821.
There was a recent change to OpenCORE that broke the MediaPlayer::decode()
function for all OpenCORE supported formats (MP3, AAC, and AMR-NB/WB). The
affect is that SoundPool is unreliable for all of these formats. This patch
changes the logic in the AudioCache object that processes messages from the
media player. The old logic was fragile. This change should make it more
robust against changes.
2009-12-09 20:36:31 -08:00
Jean-Michel Trivi
6154412ee8 Partially fix bug 2111240 Detect docking / undocking event by reporting
to the AudioPolicyManager a new forced usage AudioSystem::FOR_DOCK
which can take the FORCE_NONE, FORCE_BT_DOCK or FORCE_WIRED_ACCESSORY
values. This CL is complemented by an update of the APM to take into
account the FOR_DOCK usage.
2009-12-07 20:42:52 -08:00
Android (Google) Code Review
6d42d80653 Merge change I9cc489a2 into eclair
* changes:
  Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.
2009-12-07 11:00:54 -08:00
Android (Google) Code Review
8445f36707 Merge change Ibb9b1de1 into eclair
* changes:
  1) Capture the start memory before the test started 2) Report the mem diff to zero if it is negative.
2009-12-07 10:51:16 -08:00
Eric Laurent
9cc489a219 Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.
Fixed AudioFlinger::openInput() broken in change ddb78e7753be03937ad57ce7c3c842c52bdad65e
so that an invalid IO handle (0) is returned in case of failure.
Applied the same correction to openOutput().
Modified RecordThread start procedure so that a failure occuring during the first read from audio input stream is detected and causes
the record start to fail.
Modified RecordThread stop procedure to make sure that audio input stream fd is closed before we exit the stop function.

Fixed AudioRecord JAVA and JNI implementation to take status of native AudioRecord::start() into account
and not change mRecordingState to RECORDSTATE_RECORDING if start fails.
2009-12-07 05:37:47 -08:00
Yu Shan Emily Lau
30daf09cb6 1) Capture the start memory before the test started
2) Report the mem diff to zero if it is negative.
2009-12-04 14:15:59 -08:00
Ray Chen
052d9c8b41 Images.Media.DATE_TAKEN should be in milliseconds.
http://b/2297371
2009-12-04 11:51:25 -08:00
Android (Google) Code Review
e12de4d504 Merge change Id5fa58cf into eclair
* changes:
  Fix timezone issue to comply with EXIF standard.
2009-12-03 10:24:18 -08:00
Ray Chen
d5fa58cf3d Fix timezone issue to comply with EXIF standard. 2009-11-30 14:39:08 -08:00
Ray Chen
0b6ee9fc5e DATE_TAKEN should be in millisecond instead of second. 2009-11-30 11:07:47 -08:00
Eric Laurent
524dc046b1 Fix issue 2192673: Music Pausing Even when notifications are set to silent.
Do not play ringtones, notifications or camera sounds if ringer mode is silent.
2009-11-27 05:07:55 -08:00
Dave Sparks
16cc72bdef Fix simulator build. 2009-11-23 19:51:33 -08:00
Dave Sparks
0f9a53d499 Set metadata retriever thread group to the caller's group.
This patch modifies the native binder interface to the metadata
retriever to pass the caller's thread group across the binder
interface. On the server side, the thread scheduler group is
set to the caller's scheduler group temporarily and restored
after the request has completed. This patch also reverts a
previous patch where the priority of the thread was forced to
a low priority foreground thread.

This should give apps more control over the priority of their
metadata retrieval, particularly allow background process to
run without hogging the CPU.
2009-11-23 16:51:15 -08:00
Android (Google) Code Review
e7800946a4 Merge change I49f02be9 into eclair
* changes:
  Issue 2265163: Audio still reported routed through earpiece on sholes
2009-11-21 00:18:24 -08:00
Android (Google) Code Review
9ed314cefb Merge change Ib3191441 into eclair
* changes:
  Add the checking for mediaplayer stress test.
2009-11-20 11:59:28 -08:00
Yu Shan Emily Lau
b1ce51fb73 Add the checking for mediaplayer stress test. 2009-11-20 11:55:05 -08:00
Eric Laurent
49f02be9d7 Issue 2265163: Audio still reported routed through earpiece on sholes
This is a second attempt to fix the audio routed to earpiece syndrom.
The root cause identified this time is the crash of an application having an active AudioTrack playing on the VOICE_CALL stream type.
When this happens, the AudioTrack destructor is not called and the audio policy manager is not notified of the track stop.
Results a situation where the VOICE_CALL stream is considered as always in use by audio policy manager which makes that audio is routed to earpiece.

The fix consists in moving the track start/stop/close notification to audio policiy manager from AudioTrack to AudioFlinger Track objet.
The net result is that in the case of a client application crash, the AudioFlinger TrackHandle object (which implements the remote side of the IAudioTrack binder interface) destructor is called which in turn destroys the Track object and we can notify the audio policy manager of the track stop and removal.

The same modification is made for AudioRecord although no bug related to record has been reported yet.
Also fixed a potential problem if record stop is called while the record thread is exiting.
2009-11-19 23:57:45 -08:00
Andreas Huber
d66a901e6a DO NOT MERGE: Instead of inserting semi-random delays after submission to surface flinger, delay releasing buffers to the next display time to avoid flickering. 2009-11-19 11:24:18 -08:00
Jean-Michel Trivi
941136fd08 Fix bug 2271468 Update the javadoc for MediaRecorder.AudioSource
to define how the two new audio sources behave when used on devices
that don't support them.
2009-11-18 16:15:12 -08:00
Ray Chen
05df33ea74 Fix issue 2265955 Use dateCreated when dateTaken isn't valid when writing images/videos to database. 2009-11-17 10:42:01 -08:00
Android (Google) Code Review
fddfb9ae03 Merge change Iad79689a into eclair
* changes:
  Improvements for issue 2197683:	English IME key-press latency is noticeably higher on passion than sholes
2009-11-12 22:53:28 -08:00
Android (Google) Code Review
1aa9f3cac3 Merge change I923d7d72 into eclair
* changes:
  Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
2009-11-12 22:45:50 -08:00
Eric Laurent
923d7d721d Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
The headset state indicated by HeadsetObserver in the broadcast intent ACTION_HEADSET_PLUG was not 0 or 1 as specified in the java doc but contained a bit field indicating the type of headset connected.

Modified HeadsetObserver to broacast a state conforming to java doc.
Added an extra to intent ACTION_HEADSET_PLUG to indicate if headset has a microphone or not.
Removed handling of non standard headset indications from HeadsetObserver.
Removed platform specific devices from output devices defined in AudioSystem.
Modified AudioService to use new ACTION_HEADSET_PLUG intent extra instead of bitfield in state.
2009-11-12 12:09:06 -08:00
Andreas Huber
c8d7c1492e Delegate the platform dependent hardware renderer implementation to a shared library provided by the vendor. 2009-11-12 09:36:10 -08:00
Eric Laurent
059b4be2a5 Improvements for issue 2197683: English IME key-press latency is noticeably higher on passion than sholes
This change goes with a kernel driver change that reduces the audio buffer size from 4800 bytes (~27ms) to 3072 bytes (~17ms).
- The AudioFlinger modifcations in change 0bca68cfff161abbc992fec82dc7c88079dd1a36 have been removed: the short sleep period was counter productive when the AudioTrack is using the call back thread as it causes to many preemptions.
- AudioFlinger mixer thread now detects long standby exit time and in this case anticipates start by writing 0s as soon as a track is enabled even if not ready for mixing.
- AudioTrack::start() is modified to start call back thread before starting the IAudioTrack so that thread startup time is masked by IAudioTrack start and mixer thread wakeup time.
2009-11-11 12:13:27 -08:00
Andreas Huber
da440f137f Fix for random audio output failures, properly dup() the file descriptor in IMediaPlayer::setDataSource to assume ownership as the caller will otherwise close it. 2009-11-10 12:26:26 -08:00
Gloria Wang
c060d86f7d Check whether test server is up before running tests which use streaming files. 2009-11-09 15:51:12 -08:00
Android (Google) Code Review
fde273baf6 Merge change Ic997acac into eclair
* changes:
  Make AudioPlayer a little less verbose, defer starting audio playback until after the first video frame has been decoded (if there's video at all).
2009-11-06 11:27:03 -05:00
Andreas Huber
c997acacd5 Make AudioPlayer a little less verbose, defer starting audio playback until after the first video frame has been decoded (if there's video at all). 2009-11-05 16:34:39 -08:00
Android (Google) Code Review
1e495da19f Merge change I4b03c2cd into eclair
* changes:
  Add windows media support check in MediaMetadataTest.java and MediaPlayerApiTest.java
2009-11-05 19:15:56 -05:00
Jean-Michel Trivi
1dc2ae2871 Fix bug 2242585 to unhide the new audio recording sources.
Unhide CAMCORDER and VOICE_RECOGNITION in android.media.MediaRecorder
2009-11-05 15:49:37 -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
Andreas Huber
a4eedace99 Now that UseBuffer on this component is fixed, let's use it. 2009-11-05 09:56:03 -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
James Dong
b1c85ec47a Add windows media support check in MediaMetadataTest.java and MediaPlayerApiTest.java 2009-11-04 23:00:09 -08:00
Jean-Michel Trivi
6869df3a5d Add new audio sources to support the A1026 recording configurations. 2009-11-03 19:43:21 -08:00
Andreas Huber
d2906ad835 Fix video flickering by propagating the NO_CACHING flag from the master to MemoryHeapPMem. 2009-11-03 10:28:48 -08:00
Android (Google) Code Review
f67eff1775 Merge change Ib0036762 into eclair
* changes:
  Add windows media support check in MediaMetadataRetrieverTest bug 2232274
2009-11-02 20:13:20 -05:00
Android (Google) Code Review
d6af2e0cbf Merge change I43a335c3 into eclair
* changes:
  Suppress takePicture test from continuous DO NOT MERGE.
2009-11-02 20:08:16 -05:00
Android (Google) Code Review
774d956d5d Merge change Ic8c7ca7b into eclair
* changes:
  Remove testCheckMediaPlaybackHandlesApplicationItunes from continuous.
2009-11-02 20:07:11 -05:00
Marco Nelissen
758613de28 Make sure the visualization stops immediately when sound stops, instead of continuing for a fraction of a second. 2009-11-02 13:55:04 -08:00
James Dong
38b03a7661 Add windows media support check in MediaMetadataRetrieverTest
bug 2232274
2009-11-02 12:20:58 -08:00
Brett Chabot
43a335c3cc Suppress takePicture test from continuous DO NOT MERGE.
Bug 2141755
2009-10-30 17:07:03 -07:00
Brett Chabot
c8c7ca7bd7 Remove testCheckMediaPlaybackHandlesApplicationItunes from continuous.
This test causes the whole suite to hang.
2009-10-30 16:48:09 -07:00
Gloria Wang
608a2630bb Dump media recorder PID in dumpsys media.player, and fix minor bugs. 2009-10-29 15:46:37 -07:00
Android (Google) Code Review
898897338d Merge change I4e83a76a into eclair
* changes:
  Fix bug 2201417. Whenever the System setting that indicates whether the notifcation stream uses the ring volume changes, the table of stream volume aliases in AudioService is updated. But the name of the alias stored in VolumeStreamState.mVolumeIndexSettingName was not updated whenever the NOTIFICATIONS_USE_RING_VOLUME setting was updated. This caused the wrong volume setting to be persisted. This change ensures the setting name is updated whenever the volume alias is, and persists the notification volume change right away (instead of after a delay), so that registered observers are notified right away. The notification seekbar in the sound settings is an example of such an observer.
2009-10-28 11:47:54 -04:00
Jean-Michel Trivi
11a74a7565 Fix bug 2201417. Whenever the System setting that indicates
whether the notifcation stream uses the ring volume changes, the
table of stream volume aliases in AudioService is updated. But the
name of the alias stored in VolumeStreamState.mVolumeIndexSettingName
was not updated whenever the NOTIFICATIONS_USE_RING_VOLUME setting
was updated. This caused the wrong volume setting to be persisted.
This change ensures the setting name is updated whenever the volume
alias is, and persists the notification volume change right away
(instead of after a delay), so that registered observers are notified
right away. The notification seekbar in the sound settings is an
example of such an observer.
2009-10-27 17:49:13 -07:00
Dave Sparks
8cc42c5230 Add some logging to detect if AsyncPlayer is lagging. Bug 2201082. 2009-10-27 13:27:34 -07:00