433 Commits

Author SHA1 Message Date
Jean-Michel Trivi
2ba92c71b5 do not merge bug 3370834 Cherrypick from master
Cherripick from master CL 79833, 79417, 78864, 80332, 87500

Add new audio mode and recording source for audio communications
 other than telelphony.

The audio mode MODE_IN_CALL signals the system the device a phone
 call is currently underway. There was no way for audio video
 chat or VoIP applications to signal a call is underway, but not
 using the telephony resources. This change introduces a new mode
 to address this. Changes in other parts of the system (java
 and native) are required to take this new mode into account.
The generic AudioPolicyManager is updated to not use its phone
 state variable directly, but to use two new convenience methods,
 isInCall() and isStateInCall(int) instead.

Add a recording source used to designate a recording stream for
voice communications such as VoIP.

Update the platform-independent audio policy manager to pass the
 nature of the audio recording source to the audio policy client
 interface through the AudioPolicyClientInterface::setParameters()
 method.

SIP calls should set the audio mode to MODE_IN_COMMUNICATION,
 Audio mode MODE_IN_CALL is reserved for telephony.

SIP: Enable built-in echo canceler if available.
1. Always initialize AudioRecord with VOICE_COMMUNICATION.
2. If echo canceler is available, disable our echo suppressor.

Note that this CL is intentionally not correcting the
 getAudioSourceMax() return value in MediaRecorder.java as the
 new source is hidden here.

Change-Id: Ie68cd03c50553101aa2ad838fe9459b2cf151bc8
2011-01-26 11:20:01 -08:00
James Dong
9efe47374b Squash commits of the following patches, cherry-picked from other branch - do not merge.
o Prepare for publishing MediaMetadataRetriever as public API
  step one:
  o replaced captureFrame with getFrameAtTime
  o removed getMode

o Replace MediaMetadataRetriever.captureFrame() with MediaMetadataRetriever.getFrameAtTime()
  as part of the preparation for publishing MediaMetadataRetriever as public Java API

o Remove captureFrame from MediaMetadataRetriever.java class
  It has been replaced by getFrameAtTime() method

o Replace extractAlbumArt() with getEmbeddedPicture() in MediaMetadataRetriever.java

o Publish MediaMetadataRetriever.java as public API
  o Removed setMode() methods and related mode constants
  o Removed some of the unused the metadata keys
  o Updated the javadoc
  o part of a multi-project change.

bug - 3309041

Change-Id: I2efb6e8b8d52897186b016cb4efda6862f5584c4
2011-01-12 17:12:46 -08:00
Marco Nelissen
f13d450139 Send "compilation" tag when inserting into the database.
It's not actually inserted into the database, but the media provider uses it
for disambiguating albums.
b/3311831

Change-Id: Idb630866e960338ce2795dcc128cafaf6c9c27f2
2011-01-06 16:37:03 -08:00
Marco Nelissen
ba77a3f9cb Add support for the "compilation" tag in mp3, mp4 and ogg, and also add
support for two common ways of specifying album artist in ogg files.
b/3311831

Change-Id: Iba1152013b7577168af71f947d7249560419fa05
2011-01-06 15:05:06 -08:00
James Dong
d609ca7f6a Expose AMRNB/WB and AAC encoder and related file output formats - do not merge
bug - 3305667

Change-Id: I8f137af7f87cb010f75cae1777b9ec6b6af8214f
2010-12-22 12:12:12 -08:00
Eric Laurent
688f4c58d4 Merge "Update java doc for visualizer FFT capture." into gingerbread 2010-11-30 11:50:25 -08:00
Wu-cheng Li
f6bd761f94 Use back-facing camera as default in camera/camcorder profile.do not merge
bug:3173302
Change-Id: I11eaed32bb393206b560834d52c412f3e5a1a7d9
2010-11-09 14:11:45 +08:00
James Dong
5aa95dd36c Update a comment about when setOrientationHint() should be called
Change-Id: I389089390a552ee7a86823c050048dcec0a0eb2a
2010-11-08 10:36:53 -08:00
James Dong
ad8f19c6b3 Add a new public API to support recording rotated videos
o changed a comment about the rotation orientation from counter-clockwise
  to clockwise.

Change-Id: I16ad73ce1a55cc627d9a516e23d1325753b3037e
2010-11-05 15:53:00 -07:00
James Dong
c80c28801d Revert "Support rotation in media recorder"
This reverts commit f1febe470ac30f8992066cb263c10f58493c4c34.
2010-11-03 19:22:47 -07:00
James Dong
f1febe470a Support rotation in media recorder
o needs to be tested with camera hal and camcorder application

Change-Id: Ie343185c8ad3ec55da8850efbdcf19cf98993232
2010-11-03 17:49:55 -07:00
Eric Laurent
03a4090b4d Update java doc for visualizer FFT capture.
The java doc for visualizer FFT capture was not describing
correctly the layout of the data returned by getFft() method.

Change-Id: Idec09538490ea73b211db253b1b8b733ca4d4a72
2010-10-28 10:14:07 -07:00
Andreas Huber
9adf466021 Support for writing to MPEG2 transport stream files.
Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
2010-10-12 16:05:23 -07:00
Andreas Huber
10b9b3f3fe Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.
Change-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2
related-to-bug: 3073955
2010-10-08 10:16:24 -07:00
Eric Laurent
1a5149e5d7 Fix issue 3022800.
- Created sub-package android.media.audiofx for audio effects.
- Hid AudioEffect class contructor, methods and variables not needed by
applications
- Added more javadoc comments for AudioEffect Class

Change-Id: Ibbb40d4e714bb248aa32cf82d7763d74efae96d1
2010-09-23 11:04:03 -07:00
Eric Laurent
672c0dc3a0 Fix issue 2913071.
Scale audio signal during capture according to peak level so that
returned values on 8 bits contain enough information even for weak
signals.

Also do not reject requests to enable/disable the visualizer if we are
already in the requested state.

Change-Id: I07a705619764350834e61f82d161761eab688747
2010-09-21 15:11:50 -07:00
Eric Laurent
92cf2d6085 Made audio effect control panel intents public.
Change-Id: If927606a24966605eb3e02788b2477937349d518
2010-09-21 10:45:41 -07:00
Eric Laurent
d09af7d551 Added intents for audio effects control application
Added intents to launch audio effects control panel UI and
communicate playback state from media player applications
to effect control application/service.

Change-Id: Iede23ae11fa9f0802df5f36299dd80ea57eda376
2010-09-14 09:55:30 -07:00
Eric Laurent
71450f8139 Changed type of reverb presets from int to short
Changed the type of reverb preset constants exposed by the PresetReverb API to
match the type of the setPreset() method parameter.

Change-Id: I786764b5279c60f2368f5a0372f78da65ec54e4f
2010-08-26 10:42:38 -07:00
Eric Laurent
ba8da2e61b Audio Effects: fixed "strength supported" parameter size.
The "strength supported" parameter for bass boost and virtualizer effect was incorrectly using a
short value whereas it should be an int. This is to comply to the definition of boolean type in OpenSL ES
that is uint32.

Change-Id: I74ccb61dcc70fc9d390524a1ca5bbbd8b13ab1af
2010-08-18 14:31:25 -07:00
Jean-Michel Trivi
66edf558a9 Merge "Fix bug 2684341 Don't steal the media button event from the phone app is the phone is ringing, even in silent mode." into gingerbread 2010-08-09 14:19:08 -07:00
Jean-Michel Trivi
e73131a684 Fix bug 2684341 Don't steal the media button event from the phone
app is the phone is ringing, even in silent mode.

Use the PhoneStateListener to know whether the phone is ringing,
as the mode is not MODE_RINGTONE when ringing in silent mode.

Change-Id: Iede350cecde0b663d50f9b4a57f9a9ef08066c0d
2010-08-09 11:48:20 -07:00
Eric Laurent
2a6b80bc65 Fixed several audio effects problems.
- Fixed constant inversions in AudioEffect.java
- Do not return error when enabling an already enabled effect
- Update cached effect state in native AudioEffect class when effect is enabled/disabled by command() method
- Remove click when restarting effect during disable sequence
- Fixed problem in master mute management when volume control is delegated to effect.

Change-Id: I6df4ce9fcc54fdc7345df858f639d20d802d6712
2010-08-09 05:48:20 -07:00
Scott Main
769f9b8980 am 5b86de94: fix doc bugs
Merge commit '5b86de94a163ce4c52ab08a9820f9d78414e1767' into gingerbread

* commit '5b86de94a163ce4c52ab08a9820f9d78414e1767':
  fix doc bugs
2010-08-04 18:02:18 -07:00
Scott Main
5b86de94a1 fix doc bugs
Change-Id: Ic0cec3818fdc7692ea7aa3152ecb444203097157
2010-08-04 17:07:36 -07:00
Andreas Huber
57648e4eec Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.
Change-Id: I95b8dd487061add9bade15749e563b01cd99d9a6
2010-08-04 11:49:24 -07:00
Eric Laurent
17cb280e7f NEW_API: Unhide audio effect APIs.
This change unhides all public APIs for controling audio effects exposed
by the following classes:
- AudioEffect
- BassBoost
- EnvironmentalReverb
- Equalizer
- PresetReverb
- Virtualizer
- Visualizer

Also fixes several problems in javadoc.

Change-Id: I541ee4ad0232312ec720545737cbcdb8c9a82597
2010-08-04 08:31:01 -07:00
Eric Laurent
92e847ed8e Audio effects: aligned Equalizer API argument types on OpenSL ES SLEqualizerItf.
Modified types of some arguments and returned values of the Equalizer class from int to short
to match those defined by OpenSL ES SLEqualizerItf interface.

Also fixed a problem with set properties in equalizer engine implementation.

Change-Id: I75894bad0cb67b01c18ca5e22f9687e75ee491b8
2010-07-30 09:12:51 -07:00
Eric Laurent
ca57d1cc89 Audio Effects: added methods to effects java classes to store and load current effect settings in
a single call.

Addional changes:
- Fixed simulator build
- Use effect interface UUIDs from OpenSL ES includes when available
- Added cleanspec rules to remove now obsolete test effect libraries
- Fixed bug in AudioEffect JNI setParameter function.

Change-Id: Ic25ddb135e2cec5a68c181d727321f5ac7a1ab6b
2010-07-27 00:41:31 -07:00
Eric Laurent
7070b36549 Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
Added methods to AudioTrack and MediaPlayer java classes to enable use of
auxiliary audio effects. The effect can be attached and detached by specifying its
ID and the send level controlled.

Change-Id: Ie74ff54a453096a742688476f612ce355543b6f3
2010-07-21 06:28:01 -07:00
Eric Laurent
fd84f97af4 Added JAVA classes to control bass boost, equalizer, reverberation and virtualizer Effects.
Defined the following JAVA classes on top of AudioEffect class to facilitate control
off built-in audio effects with APIs aligned with interfaces defined in OpenSL ES
specification:
- BastBoot.java
- Equalizer.java
- PresetReverb.java
- EnvironmentalReverb.java
- Virtualizer.java

Split reverb API header file in two, one for preset reverb and one for environmental reverb.
Some changes in test reverb to support preset reverb.

Change-Id: Ie0a5ba06002e63dfd6da22cace5568c1e0b76ea1
2010-07-08 15:32:51 -07:00
Eric Laurent
dacabf97c6 Merge "Added Visualizer effect." into gingerbread 2010-07-07 16:23:30 -07:00
Eric Laurent
df9b81ced4 Added Visualizer effect.
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
2010-07-07 11:00:28 -07:00
Eric Laurent
c03befe3d6 Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
Problem:
When the bluetooth device is removed, the AudioService clears all active SCO connections
and unlinks from the client application's binder interface death.
The problem is that the unlinking is done even if no more connections are active for a given client,
which throws a runtime exception that is not catched causing the system server to crash.

The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of
active SCO connections for this client is not 0. The NoSuchElementException exception is also
catched when calling unlinkToDeath()

Change-Id: I7086424301fc63a5666da61c38169349d3e078f4
2010-07-01 16:23:34 -07:00
Eric Laurent
a0c2b53966 Merge "Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call." into gingerbread 2010-07-01 11:54:00 -07:00
Chih-Chung Chang
09b9005769 Add multiple camera support for in MediaProfiles.
Change-Id: Ie89568a0f5f5fd08ede77e33f9a559215d6bed9a
2010-07-01 10:57:15 +08:00
Eric Laurent
e2dd8c4592 Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
Problem:
When the bluetooth device is removed, the AudioService clears all active SCO connections
and unlinks from the client application's binder interface death.
The problem is that the unlinking is done even if no more connections are active for a given client,
which throws a runtime exception that is not catched causing the system server to crash.

The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of
active SCO connections for this client is not 0. The NoSuchElementException exception is also
catched when calling unlinkToDeath()

Change-Id: I29a28fcce1a579217cea271956a55778e05d3e37
2010-06-30 19:41:56 -07:00
Eric Laurent
619346f902 Added support for audio sessions in MediaPlayer and AudioTrack.
Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.

Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
2010-06-22 17:14:04 -07:00
Eric Laurent
3c652ca5a5 Fix issue 2301630: Mismatch of state occurs when media server is killed while in-call.
Use setParameters() API to indicate to audio HAL that we are restarting the media server after a crash.
The use made by audio HAL implementation of this indication is platform specific.

Change-Id: I085b174fa1474575da0e4d295921079b6b68efb8
2010-06-22 16:53:47 -07:00
Eric Laurent
01f7ac6448 Merge "Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI." into kraken 2010-06-14 09:02:13 -07:00
Eric Laurent
948235c06e Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.
Added AudioEffect C++ class. AudioEffect is the base class for effect specific implementations,
OpenSL ES effect interfaces and audio effect JNI.

Added the AudioEffect JNI and AudioEffect JAVA class. AudioEffect is the base class
to implement more specific JAVA classes to control audio effects from JAVA applications.

Change-Id: If300a1b708f2e6605891261e67bfb4f8330a4624
2010-06-11 06:26:31 -07:00
Andreas Huber
4d61f602bf Switch stagefright's approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages.
Change-Id: If8185ba329ce8b6663b1ad39a4efb0ad3be81df2
2010-06-10 15:16:57 -07:00
Jaikumar Ganesh
a8c2514edd Merge "Pass BluetoothDevice to the Bluetooth Headset calls." into kraken 2010-06-07 14:09:49 -07:00
Andreas Huber
a557b24ac4 Initial checkin of mpeg2 transport stream parser for stagefright.
Change-Id: I328ce77404daf7127933b48c9d58ed504fb8fc6f
2010-06-07 13:05:37 -07:00
James Dong
57ad07039a am c40209ac: am 28a92b2e: Merge "Fix a Javadoc to clarify when setAudioStreamType() should be called." into froyo
Merge commit 'c40209ac60a64a7c08b0d0028060d5308fd7a0b8' into kraken

* commit 'c40209ac60a64a7c08b0d0028060d5308fd7a0b8':
  Fix a Javadoc to clarify when setAudioStreamType() should be called.
2010-06-03 11:30:03 -07:00
James Dong
c40209ac60 am 28a92b2e: Merge "Fix a Javadoc to clarify when setAudioStreamType() should be called." into froyo
Merge commit '28a92b2e76a13c18dc23e5239717b122a174182f' into froyo-plus-aosp

* commit '28a92b2e76a13c18dc23e5239717b122a174182f':
  Fix a Javadoc to clarify when setAudioStreamType() should be called.
2010-06-03 11:27:19 -07:00
James Dong
9d96354d70 Fix a Javadoc to clarify when setAudioStreamType() should be called.
bug - 2737926

Change-Id: I8718c3d1a544cf5cb1b7e98b6c24fe0e6d3574ba
2010-06-03 10:37:28 -07:00
Jaikumar Ganesh
740e39be6a Pass BluetoothDevice to the Bluetooth Headset calls.
This is to support multiple headsets at the same time, atleast
at the framework level.

Change-Id: I91d05c6c2828c9a09d00806d5e79f1e9c9c7cf84
2010-06-02 16:03:51 -07:00
Wu-cheng Li
c109190b69 Add support for gps altitude EXIF tags.
Also improve the precision of getLatLong().

Change-Id: Id2c60f0d1d19e9da173b5ec1228f03c2195e189f
2010-05-27 15:59:05 +08:00
Andreas Huber
072f5247ef Support for media extraction from .mkv/.mka Matroska files in stagefright.
Change-Id: I4c26579828ad575523ccf58b0b5cb144046c04ca
related-to-bug: 2483739
2010-05-20 14:56:53 -07:00