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.
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.
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.
Merge commit 'd9f3d60df9317f15a7f26bc050f51b53b46898ff' into eclair-mr2-plus-aosp
* commit 'd9f3d60df9317f15a7f26bc050f51b53b46898ff':
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.
Merge commit '9069aa31accee9c23a4cf228ca27fe8fa8506a56' into eclair-mr2-plus-aosp
* commit '9069aa31accee9c23a4cf228ca27fe8fa8506a56':
Moving the individual extractor headers files to the private include directory.
While our hardware decoders clearly outperform the software decoders in terms
of raw throughput, their startup latency makes them less suitable for thumbnail
extraction.
Merge commit 'e981c33446a98d5ccc0d73c1a840696d77cf0732' into eclair-mr2-plus-aosp
* commit 'e981c33446a98d5ccc0d73c1a840696d77cf0732':
Extract video thumbnails from the largest sync sample among the first 20.
Merge commit 'bfd5b38673212c47f0e386c0a8370d4ff47bd2fe' into eclair-mr2-plus-aosp
* commit 'bfd5b38673212c47f0e386c0a8370d4ff47bd2fe':
Some cleanup of OMXCodec code, make sure to ignore 0-length output buffers in the metadata retriever.
Added setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.
Removed call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().
Merge commit 'ca404dfb920ab009cef4db5e74715b796f79b3f9' into eclair-plus-aosp
* commit 'ca404dfb920ab009cef4db5e74715b796f79b3f9':
do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.
Add a quirk mode to OMXCodec that makes it aware of this fact for proper display. Also integrate back a change from eclair-mr2 that delays releasing an output buffer briefly after posting it to surface flinger, as we don't know how long it'll take it to actually display the buffer's content.
Merge commit 'd96f6e85931e3d4ac4a6dacbedc561e56c293b8d' into eclair-mr2-plus-aosp
* commit 'd96f6e85931e3d4ac4a6dacbedc561e56c293b8d':
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.
Merge commit 'c642199d1d60176980e2781bb78f42dce93e1c84' into eclair-mr2-plus-aosp
* commit 'c642199d1d60176980e2781bb78f42dce93e1c84':
Separated private from public header files.
Merge commit 'fe324a61c39d5db59f09fdae81c808d7851841e6' into eclair-mr2-plus-aosp
* commit 'fe324a61c39d5db59f09fdae81c808d7851841e6':
Fix various compiler warnings accumulated over time.
Merge commit 'cfd55579c2e20514b181809dfaf30bd6f7e04c7e' into eclair-mr2-plus-aosp
* commit 'cfd55579c2e20514b181809dfaf30bd6f7e04c7e':
OMXCodec now notifies the reader of changes in the output format by returning a special result/error code.
Merge commit 'ef703f60d5c00527048fdaf1c24984762f6fd434' into eclair-mr2-plus-aosp
* commit 'ef703f60d5c00527048fdaf1c24984762f6fd434':
Change to a int64_t usecs representation for timestamps and duration throughout stagefright.
Merge commit '936fff36882764ec031ae4fb8338273cc2abccd5' into eclair-mr2-plus-aosp
* commit '936fff36882764ec031ae4fb8338273cc2abccd5':
Split the ColorConverter off SoftwareRenderer, metadata support in stagefright.
Merge commit '2d295a9601315a2610a2cb759ed9a4f787e7d4b5' into eclair-mr2-plus-aosp
* commit '2d295a9601315a2610a2cb759ed9a4f787e7d4b5':
Some decoders will return an error on OMX_EmptyThisBuffer to indicate that they don't support the media format, deal with this.
Merge commit 'cd74c0d56c0756ceb5cfa5f06d76e17aa2ed6fb9' into eclair-mr2-plus-aosp
* commit 'cd74c0d56c0756ceb5cfa5f06d76e17aa2ed6fb9':
The vendor is about to check in a fix for this issue, the workaround is no longer needed
Merge commit 'f894d111c8c1ad9038c2d434e1cd78616a6bda0a' into eclair-mr2-plus-aosp
* commit 'f894d111c8c1ad9038c2d434e1cd78616a6bda0a':
Workaround for avc decoder misreporting output buffer size requirements if the content is not a multiple-16 width/height.
Merge commit 'c39d2e3c012fb96999991e30659a474f9f30f789' into eclair-plus-aosp
* commit 'c39d2e3c012fb96999991e30659a474f9f30f789':
Music visualizer support hack.
This change is a complement to the main fix in kernel driver for the same issue (partner change #1250).
It removes clicks sometimes heard after the end of the tones while audio flinger is sending 0s to the audio output stream.
The problem was that the sleep time between two writes was more than the duration of one audio output stream buffer which could cause some underrun.
Also fixed a recent regression in ToneGenerator that made that the end of previous tone was repeated at the beginning of current one under certain timing circumstances when the maximum tone duration was specified.
Merge commit 'a97402e1cbadbdc874afa9ffdbd23f1c62fb8177' into eclair-mr2-plus-aosp
* commit 'a97402e1cbadbdc874afa9ffdbd23f1c62fb8177':
Music visualizer support hack.
This currently assumes 44k stereo (won't crash on other formats, but won't give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.
Merge commit 'e9bd4788d4370714374d833aed1339d17c5ded09' into eclair-plus-aosp
* commit 'e9bd4788d4370714374d833aed1339d17c5ded09':
Fix issue 2142613: ToneGenerator: short tones sometimes don't play on sholes or over A2DP.
When the AudioTrack callback notification size is relatively high (Which is the case on Sholes and over A2DP), it is likely that the end of tone is reached during the first callback. In this case, the AudioTrack is stopped before exiting the callback which causes 2 problems:
- 1: If the AudioFlinger thread is scheduled before we exit the ToneGenerator callback, the track can be stopped and reset before the data is actually marked as present in the buffer by the AudioTrack callback => no audio will be processed by AudioFlinger.
- 2: In this case, the data write index in the AudioTrack buffer is incremented after the track was reset by the AudioFlinger which leaves unplayed data in the buffer. This data will be played the next time the AudioTrack is started if not flushed in between.
The fix consists in adding an intermediate state to ToneGenerator state machine so that we exit the callback function when the stop condition is reached and stop the AudioTrack the next time we execute the callback.