192 Commits

Author SHA1 Message Date
Jean-Michel Trivi
1155efdc71 am 2ba92c71: do not merge bug 3370834 Cherrypick from master
* commit '2ba92c71b5684dce700cf848bf157153c156df1d':
  do not merge bug 3370834 Cherrypick from master
2011-01-26 14:05:18 -08:00
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
Marco Nelissen
4b44026879 am c929677e: Merge "Increase the number of useful bits in the spectrum." into gingerbread
* commit 'c929677e017759047d94599faa1b80ebe278fefb':
  Increase the number of useful bits in the spectrum.
2011-01-25 10:11:09 -08:00
Marco Nelissen
dbc0fe985f Increase the number of useful bits in the spectrum.
Change-Id: I3efc2ac8db689285566df35cb6f594aab41141db
2011-01-24 08:47:55 -08:00
Jean-Baptiste Queru
9286cfe501 merge 83fdc69e from gingerbread - do not merge
Change-Id: Ib1e9e12244a44f75a93d66142e71915de6386680
2011-01-14 18:33:51 -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
Eric Laurent
a1608902f9 am 5a756fb0: Merge "Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO." into gingerbread
* commit '5a756fb0f1f3f8cd7612284c889dfc69875577a8':
  Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO.
2010-12-16 16:05:16 -08:00
Eric Laurent
36d41b8103 Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO.
The problem is that when an input stream is opened for record over bluetooth SCO, the kernel
mono audio device should be opened in RW mode to allow further use of this same device by an output stream
also routed to bluetooth SCO.
This does not happen because of a bug in AudioSystem::isBluetoothScoDevice() that does not return true
when the device is DEVICE_IN_BLUETOOTH_SCO_HEADSET (input device for blurtooth SCO).

Change-Id: Ic78bf324b4a68e65721d763dc7682ce7a8f14f75
2010-12-15 19:09:42 -08:00
Chia-chi Yeh
4f93f08d8c am 683a7ff9: Merge "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample." into gingerbread
* commit '683a7ff922409d2aa6c944bc4e08de32029e80e5':
  Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.
2010-11-30 11:45:54 -08:00
Chia-chi Yeh
683a7ff922 Merge "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample." into gingerbread 2010-11-29 22:56:56 -08:00
Andreas Huber
2e1a896724 resolved conflicts for merge of 31dc911a to gingerbread-plus-aosp
Change-Id: I2f51b2120b3c552566d91a7dc498a5e8b130205f
2010-11-08 11:56:08 -08:00
Andreas Huber
31dc911aee Support post-decode video rotation.
Change-Id: Ia371316e73a57e44610de86adce3eaa560afbf84
2010-11-05 17:03:17 -07:00
Chia-chi Yeh
67f41771d5 Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.
Change-Id: Ie6d77b0f61a37333e05cdcdb6ef29d6f6c345a9d
2010-11-01 10:56:45 +08:00
Andreas Huber
fb47487259 am b04f356d: Merge "Include the framework copy of the OpenMAX headers instead of referencing external/opencore." into gingerbread
Merge commit 'b04f356d86eec74217fca8e3b85d801c4fcaa678' into gingerbread-plus-aosp

* commit 'b04f356d86eec74217fca8e3b85d801c4fcaa678':
  Include the framework copy of the OpenMAX headers instead of referencing external/opencore.
2010-10-15 18:25:14 -07:00
Andreas Huber
a4f391c9bf Include the framework copy of the OpenMAX headers instead of referencing external/opencore.
Change-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6
related-to-bug: 3101573
2010-10-15 13:31:29 -07:00
Andreas Huber
27c7fb1a86 am 90d59d18: Merge "Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that." into gingerbread
Merge commit '90d59d180bd963f00161e6bfaabfda432960cab6' into gingerbread-plus-aosp

* commit '90d59d180bd963f00161e6bfaabfda432960cab6':
  Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.
2010-10-13 15:50:27 -07:00
Andreas Huber
0c9b577e4d Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.
Change-Id: I48175666857ab0fb1519777bdb6f7f0b6b5cc599
related-to-bug: 3073955
2010-10-13 15:12:08 -07:00
Andreas Huber
a127c07c42 am 312644cd: Merge "Support for writing to MPEG2 transport stream files." into gingerbread
Merge commit '312644cdbb39522fe9cac028b15b907ce0e8e0f7' into gingerbread-plus-aosp

* commit '312644cdbb39522fe9cac028b15b907ce0e8e0f7':
  Support for writing to MPEG2 transport stream files.
2010-10-13 09:19:28 -07:00
Andreas Huber
9adf466021 Support for writing to MPEG2 transport stream files.
Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
2010-10-12 16:05:23 -07:00
Eric Laurent
4f21e517d0 am b37fcbfd: Merge "Added getter for session Id to AudioSink" into gingerbread
Merge commit 'b37fcbfd7f9d65b90b43e0242903030c5a6517b5' into gingerbread-plus-aosp

* commit 'b37fcbfd7f9d65b90b43e0242903030c5a6517b5':
  Added getter for session Id to AudioSink
2010-10-08 08:30:03 -07:00
Eric Laurent
b3bdf3f008 Added getter for session Id to AudioSink
Added a method to expose the audio session id at AudioSink interface
so that the AudioPlayer in stagefright can retrieve it.

Also:
- Fixed audio effect send level not being initialized in mediaplayer.
- Fixed compilation error when LOGV is enabled in mediaplayer JNI

Change-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb
2010-10-07 18:23:03 -07:00
Eric Laurent
de12c3cf56 am 220ab887: Merge "Issue 3032913: improve AudioTrack recovery time" into gingerbread
Merge commit '220ab8877b234e6807b7f6d9028ba55d23220301' into gingerbread-plus-aosp

* commit '220ab8877b234e6807b7f6d9028ba55d23220301':
  Issue 3032913: improve AudioTrack recovery time
2010-09-30 17:47:07 -07:00
Eric Laurent
4712baab81 Issue 3032913: improve AudioTrack recovery time
This issue showed that when an AudioTrack underruns during a too long period
of time and is therefore disabled by audioflinger mixer, it takes an additional
delay of up to 3 seconds to recover.
This fix adds a simple mechanism to recover immediately when the client application
is ready to write data again in the AudioTrack buffer

Also throttle warnings on record overflows

Change-Id: I8b2c71578dd134b9e60a15ee4d91b70f3799cb3d
2010-09-30 17:21:23 -07:00
Eric Laurent
1b37df95ec am 9627847d: Merge "Fix error in AudioEffect command status reporting." into gingerbread
Merge commit '9627847d588cd969f60dcc79d165209184a90069' into gingerbread-plus-aosp

* commit '9627847d588cd969f60dcc79d165209184a90069':
  Fix error in AudioEffect command status reporting.
2010-09-27 08:45:07 -07:00
Eric Laurent
4d3fb50782 Fix error in AudioEffect command status reporting.
AudioEffect::command() should not interpret the status
returned in pReplyData unless the command is ENABLE or
DISABLE.

Also fixed:
- bug in Visualizer::getWAveForm() status reporting.
- wrong initialization value for capture buffer in visualizer engine.

Change-Id: I60fb0011f9dba96ee74661dec1e8ef441edcaf35
2010-09-24 15:24:54 -07:00
Marco Nelissen
5c9f357994 am f30fae63: Merge "Add a check to track a problem the monkey script has been triggering." into gingerbread
Merge commit 'f30fae63389a2216faf55636b95a08f35b5c3620' into gingerbread-plus-aosp

* commit 'f30fae63389a2216faf55636b95a08f35b5c3620':
  Add a check to track a problem the monkey script has been triggering.
2010-09-17 15:42:21 -07:00
Marco Nelissen
3c473ea7f9 Add a check to track a problem the monkey script has been triggering.
Change-Id: If3896946d993cbab2442e17740f18efd7e753a3b
2010-09-17 15:04:01 -07:00
Chia-chi Yeh
1577e62986 am 12006013: fixedfft: Only includes cpu-features.h when __arm__ is defined.
Merge commit '12006013cc2cd0a076855ed068f5f782b24631c3' into gingerbread-plus-aosp

* commit '12006013cc2cd0a076855ed068f5f782b24631c3':
  fixedfft: Only includes cpu-features.h when __arm__ is defined.
2010-08-30 22:06:39 -07:00
Chia-chi Yeh
12006013cc fixedfft: Only includes cpu-features.h when __arm__ is defined.
Change-Id: Ifb6c03b38eff3c94a507ceb5043fcc48b364c25c
2010-08-31 12:56:01 +08:00
Eric Laurent
74ede9e4fd am 67b50606: Merge "Fix the simulator build." into gingerbread
Merge commit '67b506065e9fe3c56e3d1b47eedfa01170d574f9' into gingerbread-plus-aosp

* commit '67b506065e9fe3c56e3d1b47eedfa01170d574f9':
  Fix the simulator build.
2010-08-25 10:39:21 -07:00
Eric Laurent
cd295c11ab Fix the simulator build.
Fixes the sim build broken by commit 58d3bd08107f44cba79938dd8430e69c0fda4202.

Change-Id: I5a63623363d558783dc5254fdd322080cc2f3525
2010-08-25 10:00:53 -07:00
Chia-chi Yeh
a102871c7c am b80e610b: Merge "Visualizer: replace the FFT implementation with a faster one." into gingerbread
Merge commit 'b80e610b070c2cec98a228a8aec450dc24a5f90a' into gingerbread-plus-aosp

* commit 'b80e610b070c2cec98a228a8aec450dc24a5f90a':
  Visualizer: replace the FFT implementation with a faster one.
2010-08-22 18:38:29 -07:00
Chia-chi Yeh
58d3bd0810 Visualizer: replace the FFT implementation with a faster one.
This implementation uses fixed points instead of floating points. It
is slightly inaccurate compared to the old one but still perfect for
visualization purpose. It runs 40% faster on passion, 5 times faster
on sholes, and of course 14 times faster on sapphire.

Change-Id: I1e868417bcffda091becf106a7b941d02813faec
2010-08-19 16:05:32 +08:00
Jean-Baptiste Queru
09f672509b resolved conflicts for merge of 0b7bd95d to gingerbread-plus-aosp
Change-Id: I55c1689c7d0737c943efec28d8164d6a5360621c
2010-08-17 15:24:11 -07:00
Rene Bolldorf
0b7bd95d69 Fix compilation errors in libmedia, libstagefright.
(invalid conversion from 'const char*' to 'char*')

Change-Id: Idef85606b7cff629b2778ed8134c79c892af54c2
2010-08-17 23:45:14 +02:00
James Dong
c6280bce51 Fix all fd leaks in authoring engine
Change-Id: I17798543f9dd41cc8bef6f6086e66932f9f97be8
2010-08-11 17:18:30 -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
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
1d53b2a177 Fix issue 2876124.
Allow calls to MediaPlayer::notify() in idle state to signal errors from JNI.

Change-Id: I1515fe69766f0a926b76e15c4971317da2acd6a0
2010-08-04 05:38:56 -07:00
Jean-Baptiste Queru
154a320069 resolved conflicts for merge of 27eecb70 to gingerbread
Change-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1
2010-07-30 12:08:31 -07:00
Jean-Baptiste Queru
83407b993f fix inaccurate copyrights
Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
2010-07-29 17:41:35 -07:00
Jean-Baptiste Queru
4506c62abd fix inaccurate copyrights
Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
2010-07-29 17:35:37 -07:00
Eric Laurent
a4c72acfbc Audio effects: modified command() parameter types.
The type of the cmd, cmdSize and *pReplySize parameters of the effect control interface command()
function have been modified from int to uint32_t. This is more consistent with their role.

Change-Id: I84d289fc262d6753747910f06f485597dfee6591
2010-07-28 05:49:21 -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
8ed6ed0b62 Audio policy manager changes for audio effects
Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.

Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.

Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
2010-07-20 10:31:57 -07:00
Jean-Michel Trivi
4cb15cf15d Fix swap of sessionId and output in audio effect API.
Change-Id: Idc93415efef92087507401e50cfb235a6f1f7ed7
2010-07-09 12:11:49 -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
Chih-Chung Chang
09b9005769 Add multiple camera support for in MediaProfiles.
Change-Id: Ie89568a0f5f5fd08ede77e33f9a559215d6bed9a
2010-07-01 10:57:15 +08:00
James Dong
fe1bafecde Separate MediaRecorderClient with MediaPlayerClient
- An alternative would be to define a common base class that
  both MediaRecorderClient and MediaPlayerClient can derive.
  But since the common code, onTransact() and notify() uses
  some Binder code, having a common base class may not gain
  us too much in terms of code reuse.

Change-Id: Ibc06720278ad173fceacff3d267b7060856c6316
2010-06-28 15:32:26 -07:00