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
String.format was used instead of a simple string concatenation.
This is a problem when language is set to Arabic since simple
integers will be converted into Arabic numbers.
Change-Id: I2cbd4c5cd2d09117202e6ae191845fd5fc9154ec
The latter is an operation that otherwise could block on the datasource
for a significant amount of time. During that time we'd be unable to
abort the preparation phase without this prefill.
Change-Id: I3bc889b264f599bfd5c2bbdf48b88ccb55d86172
related-to-bug: 3362836
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
related-to-bug: 3331623
Squashed commit of the following:
commit 8484811f3784564ce962ec1b6311bac532d73ffc
Author: Andreas Huber <andih@google.com>
Date: Tue Jan 11 11:56:06 2011 -0800
Properly parse Matroska lacing flags and extract all frames contained in a block.
related-to-bug: 3331623
commit 38f1f39381a01659577461b3d35bd22db45ba317
Author: Andreas Huber <andih@google.com>
Date: Mon Nov 15 15:10:34 2010 -0800
Proper support for variable NALsize lengths of AVC content in .mkv files.
related-to-bug: 3197442
Change-Id: I4b404f3c3d0a2a2fa336b9edff75eb25ffc66a2f
related-to-bug: 3340186
Squashed commit of the following:
commit b61c36b7228aec9f5360883b1e1c1e0530488974
Author: Andreas Huber <andih@google.com>
Date: Wed Oct 27 13:59:59 2010 -0700
Better support for MP4A-LATM RTP disassembly. This used to fail if mNumSubFrames > 1 and the sub frames did not align with RTP packet boundaries.
commit b10f322c07e5bebcaf032e8624cb4a5d733dfc15
Author: Andreas Huber <andih@google.com>
Date: Mon Oct 25 09:40:52 2010 -0700
We don't have access to the md5 implementation on the simulator, let's disable digest authentication in rtsp for simulator targets.
commit 0aa83cf9e4637adf9501708fcdf7d0d6d4dc4fe1
Author: Andreas Huber <andih@google.com>
Date: Wed Oct 20 15:00:34 2010 -0700
Support for BASIC and DIGEST authentication schemes in RTSP. Support for malformed packet descriptions that end lines in LF only, instead of CRLF.
related-to-bug: 3084183
Change-Id: I6e512cb73cc8d5624a83f7154aa5699f7fef7534
* commit '13d1cb56dfdfc89888de6a0389b0fe6cf7e36c27':
Avoid deadlock in OMX::freeNode by making sure OMXCodecObserver does not hold the last reference of OMXCodec object - do not merge
* commit 'f13d4501396aa1679004ad07d440f65ced3ecc2b':
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
* commit 'ba77a3f9cb1d68b2ed4813aaae856444578e3a75':
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
It's not actually inserted into the database, but the media provider uses it
for disambiguating albums.
b/3311831
Change-Id: Idb630866e960338ce2795dcc128cafaf6c9c27f2
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
* commit '1f5b133ae29090f1807be392874f6b7a5d92c6d4':
When INFO_FORMAT_CHANGED event comes in before the renderer was initialized, go back to read from source again
* commit '567b2bd1469b1c37e6249637d313253b7d84971e':
After seeking display the first new video frame right away without concern for A/V sync. This looks much more responsive to the user.