376 Commits

Author SHA1 Message Date
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
8b49e97db9 am f854e077: Merge change I8134d6ed into eclair
Merge commit 'f854e0770207e93ef9d1bf6d50ed18537a107ca4' into eclair-plus-aosp

* commit 'f854e0770207e93ef9d1bf6d50ed18537a107ca4':
  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 15:01: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
Andreas Huber
39dc51040f am 2c766498: Merge change Iea6a38c6 into eclair-mr2
Merge commit '2c7664989f7388c0c6cf0ec7d80ffa2704c8c2be' into eclair-mr2-plus-aosp

* commit '2c7664989f7388c0c6cf0ec7d80ffa2704c8c2be':
  Squashed commit of the following:
2009-11-17 10:50:22 -08:00
Android (Google) Code Review
2c7664989f Merge change Iea6a38c6 into eclair-mr2
* changes:
  Squashed commit of the following:
2009-11-17 10:46:41 -08:00
Andreas Huber
775508d97f am 744043fc: Update FileSource to also accept a file descriptor and a range.
Merge commit '744043fcbf48c32c2051f222eca552fa2df5dfcb' into eclair-mr2-plus-aosp

* commit '744043fcbf48c32c2051f222eca552fa2df5dfcb':
  Update FileSource to also accept a file descriptor and a range.
2009-11-17 10:36:27 -08:00
Andreas Huber
744043fcbf Update FileSource to also accept a file descriptor and a range. 2009-11-17 10:21:03 -08:00
Andreas Huber
ea6a38c63b Squashed commit of the following:
commit 333057b355f8c260c549553b9a0634755c838b6a
Author: Andreas Huber <andih@google.com>
Date:   Fri Nov 13 15:35:48 2009 -0800

    Some more tweaks to AVC encoding on sholes.

commit 9981d0ee52ec5b8b0182aae733d1571e3ebb8390
Author: Andreas Huber <andih@google.com>
Date:   Thu Nov 12 16:36:57 2009 -0800

    Support for avc encoding, including sholes specific tweaks to pick the right colorspace for the camera to not require transcoding.

commit 5ba0ebbbd4efca51f3ae1f60e2ca31e7d2cf136d
Author: Andreas Huber <andih@google.com>
Date:   Wed Nov 11 09:50:03 2009 -0800

    Enable actual (camera) video-only recording using h.263 or mpeg4 encoding.

commit 3fd59c3526a37fe7c696f4a978925d1831c09313
Author: Andreas Huber <andih@google.com>
Date:   Tue Nov 10 14:57:48 2009 -0800

    Allow switching between the PV recorder implementation and one supported by stagefright.

    This is controlled through the property "media.stagefright.enable-record".
2009-11-16 15:43:38 -08:00
Eric Laurent
355743c70d am 609acfd2: am 1aa9f3ca: Merge change I923d7d72 into eclair
Merge commit '609acfd2a1067f49e51925776484b070a24d8301' into eclair-mr2-plus-aosp

* commit '609acfd2a1067f49e51925776484b070a24d8301':
  Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
2009-11-13 09:27:55 -08:00
Eric Laurent
609acfd2a1 am 1aa9f3ca: Merge change I923d7d72 into eclair
Merge commit '1aa9f3cac31a7c2b50fcb3c9259cead8d638ae54' into eclair-mr2

* commit '1aa9f3cac31a7c2b50fcb3c9259cead8d638ae54':
  Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
2009-11-12 23:10:18 -08:00
Eric Laurent
e8302a64c7 am 1aa9f3ca: Merge change I923d7d72 into eclair
Merge commit '1aa9f3cac31a7c2b50fcb3c9259cead8d638ae54' into eclair-plus-aosp

* commit '1aa9f3cac31a7c2b50fcb3c9259cead8d638ae54':
  Fix issue 2242614: Wired headset not recognized: bogus "state" in ACTION_HEADSET_PLUG broadcast.
2009-11-12 22:49:51 -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
bfdb1e88ef am d0f3228d: resolved conflicts for merge of c66d53f9 to eclair-mr2
Merge commit 'd0f3228daa9ea26ec959cb79451e6f150648bce8' into eclair-mr2-plus-aosp

* commit 'd0f3228daa9ea26ec959cb79451e6f150648bce8':
  Delegate the platform dependent hardware renderer implementation to a shared library provided by the vendor.
2009-11-12 10:43:31 -08:00
Andreas Huber
d0f3228daa resolved conflicts for merge of c66d53f9 to eclair-mr2 2009-11-12 10:32:26 -08:00
Andreas Huber
4719963c86 am c66d53f9: Merge change I880541a8 into eclair
Merge commit 'c66d53f97b1fe635f576642d5720dcd441e34cce' into eclair-plus-aosp

* commit 'c66d53f97b1fe635f576642d5720dcd441e34cce':
  Delegate the platform dependent hardware renderer implementation to a shared library provided by the vendor.
2009-11-12 10:00:02 -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
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
653d5d415c am fcae6c71: am 67b69292: Merge change I93f500a5 into eclair
Merge commit 'fcae6c71794696a074cabf20beeb02fd87853e30' into eclair-mr2-plus-aosp

* commit 'fcae6c71794696a074cabf20beeb02fd87853e30':
  Fix issue 2203561: Sholes: audio playing out of earpiece.
2009-11-05 01:55:51 -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
Eric Laurent
fcae6c7179 am 67b69292: Merge change I93f500a5 into eclair
Merge commit '67b692920c18f99b096dce285adc6f7439fa866c' into eclair-mr2

* commit '67b692920c18f99b096dce285adc6f7439fa866c':
  Fix issue 2203561: Sholes: audio playing out of earpiece.
2009-11-05 00:01:33 -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
bd38397bc4 am 3d2d155a: am 7ed0ceeb: Merge change I6869df3a into eclair
Merge commit '3d2d155a87cdd3038a2e6df8741181431cb250e1' into eclair-mr2-plus-aosp

* commit '3d2d155a87cdd3038a2e6df8741181431cb250e1':
  Add new audio sources to support the A1026 recording configurations.
2009-11-04 13:23:00 -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
3d2d155a87 am 7ed0ceeb: Merge change I6869df3a into eclair
Merge commit '7ed0ceeba54712f76e9a4f2dd4c9197d76813488' into eclair-mr2

* commit '7ed0ceeba54712f76e9a4f2dd4c9197d76813488':
  Add new audio sources to support the A1026 recording configurations.
2009-11-04 12:05:34 -08:00
Andreas Huber
8495359382 am ad278f22: Merge change I6bce6d87 into eclair-mr2
Merge commit 'ad278f2276de23197571e486ad387dacc7f346ee' into eclair-mr2-plus-aosp

* commit 'ad278f2276de23197571e486ad387dacc7f346ee':
  Adds a WAVExtractor for 16-bit signed PCM audio wave files.
2009-11-04 10:43:01 -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
6bce6d87b3 Adds a WAVExtractor for 16-bit signed PCM audio wave files. 2009-11-03 16:00:58 -08:00
Eric Laurent
2926bf7d9a am c69e7516: am ee98c240: Merge change I73680cd9 into eclair
Merge commit 'c69e7516482aae626eb550f5dd99f0f2f7a45909' into eclair-mr2-plus-aosp

* commit 'c69e7516482aae626eb550f5dd99f0f2f7a45909':
  Fix 2194140: [Passion] Support Audience chip.
2009-11-02 12:51:05 -08:00
Eric Laurent
c69e751648 am ee98c240: Merge change I73680cd9 into eclair
Merge commit 'ee98c24020c1634b02cde6d333968f04a0de941f' into eclair-mr2

* commit 'ee98c24020c1634b02cde6d333968f04a0de941f':
  Fix 2194140: [Passion] Support Audience chip.
2009-11-02 12:40:34 -08: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
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
Andreas Huber
5647eebc3a am 9dba1f92: Merge change Ib482ce88 into eclair-mr2
Merge commit '9dba1f928021450f101013e03deacc9a0506772e' into eclair-mr2-plus-aosp

* commit '9dba1f928021450f101013e03deacc9a0506772e':
  Revive support for video encoding in OMXCodec.
2009-10-29 14:00:16 -07:00
Andreas Huber
b482ce8837 Revive support for video encoding in OMXCodec. 2009-10-29 12:02:48 -07:00
Andreas Huber
e113d6af62 am 76a54294: Merge change I155e2ad0 into eclair-mr2
Merge commit '76a5429407e821c22508eca92e7475b6433cd668' into eclair-mr2-plus-aosp

* commit '76a5429407e821c22508eca92e7475b6433cd668':
  Re-enable CameraSource.
2009-10-28 10:36:57 -07:00
Android (Google) Code Review
76a5429407 Merge change I155e2ad0 into eclair-mr2
* changes:
  Re-enable CameraSource.
2009-10-28 13:25:09 -04:00
Andreas Huber
155e2ad04c Re-enable CameraSource. 2009-10-28 10:15:07 -07:00
Eric Laurent
848f9c99af am 7ed70c95: am bf96aaad: Merge change Icf10db28 into eclair
Merge commit '7ed70c9515fe3df6eb1796717d73f23e7286b3e6' into eclair-mr2-plus-aosp

* commit '7ed70c9515fe3df6eb1796717d73f23e7286b3e6':
  Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
2009-10-24 01:47:59 -07:00
Eric Laurent
7ed70c9515 am bf96aaad: Merge change Icf10db28 into eclair
Merge commit 'bf96aaadd46fb5b0884070177faa16ec4f22e2ba' into eclair-mr2

* 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:58 -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
Andreas Huber
c91e3d8d89 am d9f3d60d: Merge change I3b1b7873 into eclair-mr2
Merge commit 'd9f3d60df9317f15a7f26bc050f51b53b46898ff' into eclair-mr2-plus-aosp

* commit 'd9f3d60df9317f15a7f26bc050f51b53b46898ff':
  New API to instantiate a MediaExtractor given a URI and optional MIME type.
2009-10-23 13:00:43 -07:00
Andreas Huber
9a12baf929 New API to instantiate a MediaExtractor given a URI and optional MIME type.
Also DataSources now must provide a method initCheck()
and DataSource::reat_at has been renamed to readAt to conform to
standard API naming guidelines.
2009-10-23 10:35:08 -07:00
Andreas Huber
d919aa7492 am 9069aa31: Merge change I57515f33 into eclair-mr2
Merge commit '9069aa31accee9c23a4cf228ca27fe8fa8506a56' into eclair-mr2-plus-aosp

* commit '9069aa31accee9c23a4cf228ca27fe8fa8506a56':
  Moving the individual extractor headers files to the private include directory.
2009-10-23 10:26:18 -07:00
Andreas Huber
57515f334b Moving the individual extractor headers files to the private include directory. 2009-10-23 09:55:10 -07:00
Andreas Huber
871e4ee81d am e8472900: Merge change Ie13526ad into eclair-mr2
Merge commit 'e84729002102622b40bd6efddffb76909615c12a' into eclair-mr2-plus-aosp

* commit 'e84729002102622b40bd6efddffb76909615c12a':
  Prefer software decoders over hardware for thumbnail extraction.
2009-10-23 08:51:19 -07:00
Andreas Huber
e13526ad92 Prefer software decoders over hardware for thumbnail extraction.
While our hardware decoders clearly outperform the software decoders in terms
of raw throughput, their startup latency makes them less suitable for thumbnail
extraction.
2009-10-23 08:39:00 -07:00
Andreas Huber
7453da3f42 am e981c334: Extract video thumbnails from the largest sync sample among the first 20.
Merge commit 'e981c33446a98d5ccc0d73c1a840696d77cf0732' into eclair-mr2-plus-aosp

* commit 'e981c33446a98d5ccc0d73c1a840696d77cf0732':
  Extract video thumbnails from the largest sync sample among the first 20.
2009-10-22 14:49:35 -07:00
Andreas Huber
e981c33446 Extract video thumbnails from the largest sync sample among the first 20.
Also fixes OMXCodec seek behaviour on the very first call to OMXCodec::read()
2009-10-22 14:22:57 -07:00