summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* DO NOT MERGE - audio flinger: fix fuzz test crashEric Laurent2015-10-192-4/+20
| | | | | | | | | | | | | | | | | | Clear output stream pointer in duplicating thread when the main output to which it is attached is closed. Also do not forward master mute and volume commands to duplicating threads as this is not applicable. Also fix logic in AudioFlinger::primaryPlaybackThread_l() that could accidentally return a duplicating thread. This never happens because the primary thread is always first in the list. Bug: 20731946. Change-Id: Ic8869699836920351b23d09544c50a258d3fb585 (cherry picked from commit f6870aefc5e31d4220f3778c4e79ff34a61f48ad) Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
* camera: Fix preview on SEMC msm7x30 devicesMichael Bestas2013-08-211-1/+1
| | | | | | Signed-off-by: Michael Bestas <mikeioannina@gmail.com> Change-Id: Iaf1d36db1787e6cebecf31eb2c0d2050c530e208
* audioflinger: remove redundand ifdefGiulio Cervera2013-07-031-5/+0
| | | | Change-Id: Iefc64cf477fd58a29984a9c198d84e876dbcf1c5
* Squashed commit of A/V changes from CodeAuroraKrishnankutty Kolathappilly2013-06-184-42/+396
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Brings us current with AU_LINUX_ANDROID_JB_2.5.04.02.02.040.367 Camera: Fix deadlock due to mLock in pcb and takepicture In non-zsl case of takepicture, we do streamoff for preview stream which is waiting on preview callback thread to exit. By that time the lock has already been acquired by takePicture. So preivew callback will not exit until it acquires lock and takePicture cannot continue until PCB call back is returned. Fix: Avoid the mLock at services when both Preview cb & Compressed cb are enabled. Change-Id: I6c264928bf1540c7b51f1add65f9c3e968506e15 CRs-fixed: 479419 audioflinger: Fix the LPA-AudioEffects crash issue - Issue:crash is observed during LPA playback on enabling effects followed by plug-out->plug-in of wired headset - Rootcause: while deleteing the effectchain in deleteEffect EffctChain is being unlocked after clearing the chain which leads to accessing the lock which might already deleted. - Fix: first unlock the effectChain and then call clear CRs-Fixed: 491774 Change-Id: I518ff086c5ad71486cd29142563145137ebc15b6 libstagefright: Fix for crash in sound recorder during device switch -Crash seen in sound recorder during frequent insertion and removal of wired headset -During device switch some time Codec's input buffers are too small to accomodate buffer read from source. Omx codec doesn't read the fix size buffer from source, during device switch scenario sometime buffer read from source exceeds input buffer size so it goes in error state which leads to crash. -Increasing the input buffer size fix this issue Change-Id: Id15378670880d0c3c0bd4408841b28be963549a0 CRs-Fixed: 488449 libstagefright: Fix for FPS drop issue during A-V playback. Issues: -The AAC decoder was not updating the timestamp when EOS is reached. -Logic to smoothen the real time update in AudioPlayer uses system time. This introduces corrupt timestamp during EOS. Fix: -Update the timestamp in AAC decoder when EOS is reached. -Extrapolate realtime using system time in AudioPlayer when EOS is reached. Cap the value to realtime if extrapolated time becomes greater than realtime. CRs-Fixed: 384183 Change-Id: Ice54501436431d2527fcd3d710d65d9732fcffdd libstagefright: Reset buffer size value with SurfaceTexture - OMXCodec explicitly sets the decoder output buffer size using the native window perform API. (to accomodate extra-data) - This size is reset only when the SurfaceTexture is destroyed. - Unless reset, this size will be assumed for all output buffers if the SurfaceTexture is re-used. CRs-Fixed: 337660, 432309 Change-Id: I28aed12ad02adeac61caffbb00e3082640a5f6d4 audio: Add support for tunnel mode recording - Add support for tunnel mode recording. Change-Id: I95cdfff729affd784141487521c9f2f714221d11 audio: Add support for non-pcm VOIP vocoders - Add support for non-pcm VOIP vocoders - non-pcm vocoders use AUDIO_SOURCE_VOICE_COMMUNICATION as inputSource. Add check to verify inputSource and then configure framecount accordingly Change-Id: Ia38da4f6ba0ee40c794d3c97325327cdb7dcb32a CRs-Fixed: 467850 frameworks/av: Add metadata mode changes to LPAPlayer -Seek to EOS was causing playback to hang for 3 seconds before switching to the next clip. -This is because the lpa driver works on period size. Partial buffers are not handled. -Add support for metadata mode changes to LPAPlayer to support partial frames. CRs-Fixed: 458904 Change-Id: I8673756b54ae7bca18855d326c85ae1064652514 libstagefright: Add support for WMA in ACodec - WMA support is not there in ACodec - In the case of wma format, since not getting the complete information of wma version so instead of allocating the component in onAllocateComponent function it will create in onConfigureCompoenent function. bitspersample is find as "bsps" from AMessage while configuring the WMA10PRO and WMALOSSLESS format CRs-Fixed: 453951 Change-Id: I98baa701dbf8a5c012f4be5e83831c0be2111dcc libstagefright: Flush the pending buffers when EOS is received For the use case where the first frame in the buffer is EOS, decode the aac config frame buffer to update the sample rate and channel mode and flush out the buffer. Change-Id: I0354802cdbf61ac1ba0fecbbdf616705806b0f4a CRs-Fixed: 459334 audio: Fix The Linux Foundation copyright - Fix copyright format based on The Linux Foundation copyright template Change-Id: I100a5c86302d1a1a3d79543d95e242734daae746 media, audioflinger: check for divide by zero possibilities and err When output stream is not available to audioflinger due to any reason , sampleRate and frameCount have zero values when trying to create new Audiotrack. This might result in divide by 0 situation. Change-Id: Ic13cb51facb8497e68ab596abb027b44f496b907 CRs-Fixed: 478480 framewroks/av:Fix ANR at the end of video recording - While doing video recording, when the recording ends ANR observed while doing stress test for many hours - When the recording is stopped, audio HAL receives error from driver and audio HAL propagates this error to AudioFlinger. But AudioFlinger is not sending error status to audio source to stop recording. Because of this audiorecord thread keeps on waiting for buffers which is resulting in ANR. - To avoid indefinite wait, a timeout of 1 sec is set for buffer in audioSource and after timeout, -ETIMEDOUT is returned to recorder thread. CRs-Fixed: 479968 Change-Id: I91aba6922086e711992d9d991dea9c35d33eaee9 audioflinger: Integrate SRS TruMedia Change-Id: If61ae91556120ddd5f5ebcc6dbbfe6583c7df67d audioflinger: Fix apply SRS effects if tones diabled in tunnel mode For the use case of SRS post processing in Tunnel mode, the API's of SRS are called only from write. With the huge buffering for tunnel mode, once EOS is received there would not be further write. With system tone enabled, the SRS API's are called during the check for Parameters change through normal mixer thread. With system tones disabled, SRS will not be applied after EOS as no write and mixer thread would not be active. Fix the issue by adding the Effects Thread for SRS in Tunnel mode. Fix the compilation issue with ALOGV messages enabled Change-Id: Ic7e62894840f786119dfe8ae471c5d24812917d7 audioflinger: Enhance LPA-effect logic to handle rapid config. -Issue:Rapid Config events cause pops/glitches, raw data playback. -Rootcause1:Raw data leakage to DSP: applyEffectsOn() applies effects chunk by chunk in a loop, if effects change during this time the loop exits and this results in creation of a buffer in which part of it is effects processed and rest raw, this causes raw data to leak to DSP. -RootCause2:Effectsthread directly works on the DSP buffers, while DSP is rendering from there, so that effect application is instantaneous and for this it gives the DSP buffers as output to effects chain, this means that all the effects in the chain update the DSP buffers one after the other, this can create unpredictable rendering patterns. RootCause1 and 2 combined seem to fragment memory with parts of it with effects and parts with raw data etc. -Fix1:Dont update DSP mem unless the effects are applied completely on a buffer. -Fix2:Effectschain will work on a temp scrath buffer instead of DSP mem and when effects are applied completely on this scrath buffer, memcpy this to DSP mem with this DSP mem is updated in one shot. -Remove repetetive logs which clutter the logcat if msgs are enabled in audioflinger. Change-Id: I9051e7b8531aa5c8cb3dcfafe0be3136a2cf0f9d CRs-Fixed: 463880 frameworks/av: Update framecount and buffersize values -framecount should be calculated based on mMaxBufferSize returned from HAL -update the buffersize with the value returned from HAL CRs-Fixed: 482744 Change-Id: I90dd9c3ebbbc8a9f1f2f92c5347ae9cb01719e13 audioflinger: Fix the LPA-AudioEffects dead lock issue. - Issue:Deadlock occurs when the LPA clips are subjected to rapid next from BT device and simultaneously on/off the audio effects. - Rootcause:some times flinger thread processing LPAPlayer/directtrack next deadlocks with the thread working on effect configuration as both of them contend for the audioflinger::mlock and effectmodule::mlock. - Fix1:AudioFlinger::deleteEffectSession() not to acquire audioflinger:mLock instead take the mLPAEffectChain.mlock. - Fix2:ThreadBase::effectConfigChanged() not to acquire audioflinger::mlock. Change-Id: I056c8297802f81644fa1371836db42bdbd3825fd CRs-Fixed: 477511 libstagefright: Add support for High Frame Rate Encoding - Based on kkeyhfr key value from meta data, add support in OMXCodec and MPEG4Writer for HFR mode - Assume normal mode recording if kKeyHfr is absent - Increase bit rate for high frame rate (HFR) recording feature to reflect the corresponding increase in frame rate Change-Id: I0a69f8d9322a768677781d08dd910dc5772c5292 libstagefright: Support some userdefine properties - support property to disable audio - support property to change recorder profile mode - support b frame encoding Change-Id: I175decec83f6027cbd7988caf680f7fec2836f83 CRs-Fixed: 443327 libstagefright: Add support for H/W AAC decoder - Currently, only software AAC decoding is supported. - Add support for H/W AAC decoding by including it in the list of available decoders and use it for decoding only if the property 'media.aaccodectype' is set to 0. Change-Id: I4bb9df1bd10bd8ee91e63dadd6c473fc4e29813a CRs-Fixed: 449145 libstagefright: Move checks for creating new extractor to ExtendedExtractor - Move all the checks and creation of the extended extractor into ExtendedExtractor. - Restrict creation of new extractor to the following conditions o default extractor is NULL o default extractor says the content is video only or has an unrecognized audio stream o the audio stream is a amr-wb (plus). - This change is being added to avoid unnecessary creation of two extractors thereby improving the startup latency. CRs-Fixed: 462087 Change-Id: Ia87eca73c4f81d37697fa85fd4f7c8cc8d406104 [StageFright] Enable 4 channel support This patches enables 4 channel WAV audio support and fixes invalid data size in WAV header field if it exceeds the actual source size. This patch is needed to support WebAudio in WebKit as some of the chrome demos use 4 channel WAV audio and bogus header information. Change-Id: I307026107ab4e4342b1c0d7bb64761a416fb2c65 audioflinger: Fix crash on LPA shutdown * Decrement the refcount after unlocking the mutex Change-Id: Ic3210700e0aaf5e8df78f85f501621a455058e24 libstagefright: Accept vendor specific NV12 colorformat from component - Accept OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar32m color format which is NV12 + 32 aligned stride and slice. - This is different from vanilla NV12 which is 16 aligned. Change-Id: I6de2ec3a78215dbcc28a6006b746e3e0afe69c3c libstagefright: various fixes for avc_utils - skip seq_scaling_matrix_present_flag assertion if checking for interlaced property. - correct interlace check to outside of if-block Change-Id: Ia5854110feb1c56ddc86b312d2ba2dbb73d37804 CRs-Fixed: 445527, 445692 libstagefright: print stats at end of playback - prints statistics before reset at the end of playback onto logcat - print statistics after each pause and seek Change-Id: I68edcc3153a04209e7382e4d3fba0bf734f3e33f CRs-Fixed: 457926, 447109 frameworks/base : Fix to play a specific Mp4 clip due to SYNCH_LOST_ERROR. -Unable to play a Specific Mp4 clip. -Mp3 playback is stopped if the Decoder errors out with SYNCH_LOST_ERROR. -Ignore the frame with SYNCH_LOST_ERROR and play silence instead. Change-Id: I6b94a83cf89e8bc6792d8ee3804042d629aa505b Add checks before removing an active buffer in OMXNodeInstance With this change, OMXNodeInstance will remove a buffer from it's active list only if OMX_FreeBuffer returns successfully. Change-Id: I685b39ac7ba762a2fc1b64d7f6c1efd391513598 libstagefright: Add interlaced video support - Adds call to set output buffer size on the native window Change-Id: If4a67b3f877bef557c46bb67b29d1e7051553335 audio: fix for AMRWB param overwritten issue - Overwrite AMRWB params with default value only when setParameters is not invoked CRs-Fixed: 456459 Change-Id: I3fa6b56101ca408ed5b5b82707c6dc75a9d9f17b audio: fix encoder parameters for AMRWB format - AMRWB encoder only accepts SampleRate 16k and channel count 1. Always overwrite AMRWB SampleRate and channel count to default values. - AMRWB encoder accepts BitRate from 6.6k to 23.85k, only overwrite AMRWB BitRate to default(23.85k)if setParameters() is not invoked Change-Id: I75a96b54ef04bc59dab9074ec112071e62fd51aa CRs-Fixed: 460931 stagefright: Add QCOM_BSP ifdefs for interlaced video handling Change-Id: I856ae4a97f1bf13ab18d386b3486e742a4804b2a Camera : Changes to support camcorder profiles. Change-Id: I9c4bf14f273839fd36d5f52db0f215873e8291a0 av: Ifdef all the things! Change-Id: If9dd6c6442e9d2ac9e55e48369f2da85f5f951f7 Camera: Add profiles for camcorder. Change-Id: Icdaf1fae0018de1fb04f41125cfbe34a91b5eda7 libvideoeditor: use vWidth and vHeight for buffer allocation - video editor detects crop information from decoder, crop width and height will override metadata width and height. - decoder is capable of sending crop information where crop width and height are smaller than actual resolution. - use actual metadata width and height for calculating buffer size. Change-Id: Id1d77c316e3892e6d51a00418052f256629f495f CRs-Fixed: 452511 Add ifdefs around enhanced media types Change-Id: I64b8853660ac4fe90ddb218b237f63b635cdb47b
* Add camera parameters for htc evo 3D. (1/2)Kevin Bruckert2013-04-282-1/+20
| | | | | | Use BOARD_HTC_3D_SUPPORT to enable. Change-Id: I28fa3f1586071bcc78b8e887bbbf699d338a0ceb
* Revert "audioflinger: apply volume on direct track when track is active"detule2013-04-211-7/+5
| | | | | | | | | | | | | | | | Causes issues with MortPlayer (LPA). Track starts/resumes playing, but volume is forced to zero, until a track-change occurs. 4-17 21:41:51.492 D/ALSADevice( 256): setHardwareParams: reqBuffSize 262144 channels 2 sampleRate 44100 04-17 21:41:51.492 D/ALSADevice( 256): setHardwareParams: buffer_size 1048576, period_size 262144, period_cnt 4 04-17 21:41:51.492 W/AudioFlinger( 256): There was no effectChain created for the sessionId(283) 04-17 21:41:51.512 E/AudioFlinger( 256): setting observer mOutputDesc track 0x40c598a0, obv 0x40c598b0 04-17 21:41:51.512 D/AudioSessionOutALSA( 256): setLpaVolume(0) 04-17 21:41:51.512 D/AudioSessionOutALSA( 256): Setting LPA volume to 0 (available range is 0 to 100) 04-17 21:41:51.512 D/ALSADevice( 256): setMixerControl:: name LPA RX Volume value 0 index 0 04-17 21:41:51.512 D/AudioSessionOutALSA( 256): setLpaVolume(0) 04-17 21:41:51.512 D/AudioSessionOutALSA( 256): Setting LPA volume to 0 (available range is 0 to 100) Change-Id: I6e0ee8cd7c2f577ca5b4cb834c7a83703db4b167
* Camera: QCOM legacy definitions,HTC cam switch,NO_UPDATE_PREVIEWtbalden2013-04-143-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updating Camera parameters, and service with several compatibility patches: 1., QCOM legacy CameraParameters and functions: Adding these will make ICS qcomm camera blobs work on JB 4.2. Use BOARD_USES_QCOM_LEGACY_CAM_PARAMS := true in BoardConfig to use this. Also fixes the problem of legacy qcom camera blobs with recent libcameraservice QCOM_HARDWARE changes, where the orientation is messed up on first preview: the fix is leaving out setPreviewWindow(window) for legacy qcomm cam blobs. 2., Also adding NO_UPDATE_PREVIEW flag for legacy purposes. 3., Adding adding the set orientation patch: Always set buffers orientation when setting the qcom camera preview window Fixes the rotated preview on TouchPad https://github.com/CyanogenMod/android_frameworks_base/commit/1a8e41a3c7434737db89b604352575f8b3109e7a 4., camera: Full support for HTC camera switch 5., Adding more parameters for HTC Explorer Change-Id: I2bfc72b8ef027665356788f1db7f96b31d037dbe
* libstagefright: Squashed audio fixes from CodeAuroraHaynes Mathew George2013-04-081-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Return seek position until seek has been processed If it so happens that the client to TunnelPlayer (e.g. AwesomePlayer) queries for the current time before data from the new seek position is given to the compressed driver, we need to return the seek position Change-Id: If709e61f67cc8e81d34c14d19145dc61ecd82c2b CRs-Fixed: 454825 libstagefright: Use 64 bit offsets only when needed. For enabling >2GB recording, 64 bit offsets are needed for file writing. So, this feature was turned on by default. This in turn increased the file size. With this change, by default this feature will be off and turned on only when required. - Use 64 bit offsets for resolutions >= 720p. - Limit maximum file size for recording to 4GB. - Set max file size only if no value is set from the client. - Fix MPEG4Extractor to use 64 bit offsets CRs-Fixed: 273144, 285785, 288319 (cherry picked from commit 04476a3fb89dfbb025f7852dd4d62cae72385f1a) Change-Id: I00af2c7cddbbf86c566fe4bb989fe728ca06dd19 libstagefright: TunnelPlayer sync fix - Allow close on the AudioSink to be called from the extractor thread and the application thread. - This fixes a race condition where an onPauseTimeout event scheduled from the main thread closes the audio sink while the extractor thread was about to issue write() on audio HAL. (note: on HAL, not audio sink) Change-Id: I22a5c655dfcb40f3cbda3765dc23ad8e6f99c9bb CRs-Fixed: 443205 Frameworks/av: Fix to prevent deadlock in AudioEffects -Write is blocked waiting for effect chain lock and this causes decoder thread to wait indefintely. -Sometimes it is observed that effectschain is locked before mLPAEffectChain is initialized and but unlocking is skipped if mLPAEffectChain is initialized in between.Due to this LPA silence and framework reboot issues are observed as applyEffectsOn() cannot acquire lock to progress further. -Use flag to check if all effects have been locked and unlock accordingly to prevent the deadlock scenario. (cherry picked from commit 011db22abf565dfbe7f9d0a5c7af7564587b3b48) Change-Id: I82cfdab045ecf077f0ba0185fc693fc623fa10db CRs-Fixed: 435661, 435664, 435680, 430309 audio: Use tunnel player only for music stream - Check stream type before creating tunnel player to use tunnel player only for STREAM_MUSIC Change-Id: I6e4b58524e61441ad2e09499bd9187c6dd56cd3d framework/av: Fix for audio recording test through CTS - Issue: Failure in stop is observed with the audio recording test through CTS. TestScenario: When the audio record test is initiated in the CTS console, the recording session is force closed with a notification File Size limit exceeded. Further, the stop fails with the same message(notification of the File size exceeded error). - Cause: The calculation of nTotalBytesEstimate for the recording session exceeds the limit 95 percent of mMaxFileSizeLimitBytes. As a result of size deficit, the recording is stopped at the beginning of the recording session notifying MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED. - Fix: The factor size used in the calculation of nTotalBytesEstimate has been updated properly for 64bit file offset setting. The setParam64BitFileOffset in StagefrightRecorder::prepare() is executed based on two additional validations so that the factor size is updated appropriately. Change-Id: I4749ce8f9735ccc9e1d9e49718c36470837ab27f CRs-Fixed: 396057 audioflinger: apply volume on direct track when track is active During back to back tunnel playback, we encounter a race condition where setVolume can be called when the track is not updated to active state. Fix to apply the volume on direct track only when the track is in active state. Change-Id: I70c289fbf8a9266bae0bd01b04be9f43ad32c70d CRs-Fixed: 464148 LPAPlayer: Update condition to ignore seek - Reject seek if the new seek time is greater than the current position and within an empirical limit (default 60ms). - This limit must be measured for each target. Change-Id: I86b44679fb5fe442bb5adb510c62514f6be3d304 CRs-Fixed: 453067 audioflinger: for DirectAudioTrak, call startOutput before stream is active For LPA and Tunnel playback, when resume is done in paused state, before starting actual playback, volume should be set through AudioPolicy command thread. Change-Id: I7ee1098058c01a35a3e7181d3b291304abf3cac1 CRs-Fixed: 464348
* qcom-fm: audio: add support for FM featureMingming Yin2013-03-064-4/+123
| | | | | | | | | | Change-Id: Idd5c7a0364710d54809ef5d4c7b2404b22dc4cf6 Conflicts: include/media/IAudioFlinger.h media/libmediaplayerservice/StagefrightRecorder.cpp media/libstagefright/Android.mk
* audio: Subsystem Restart changesRavishankar Sarawadi2013-03-041-0/+31
| | | | | | | | | | | | | | | | - Handle new ADSP status parameter - media/libmedia: Add new ADSP status audio parameter - framework/av: Add handling of new key-pair value in Audio Flinger - Handle Tunnel mode SubSys Restart - framework/av: Post SSR event to Audio Flinger - media/libmedia: Post SSR event to AudioTrack - media/libmediaplayerservice: Post SSR event to MediaPlayerService - media/libstagefright: Post SSR event to TunnelPlayer Change-Id: I8c8385af45be91caf7d7160ab2e0236d6591b159
* audioflinger: Fix to set correct volume in Tunnel playbackAmal Paul2013-02-192-1/+6
| | | | | | | | | | | | - After a pause and resume, tunnel playback volume is always set to maximum irrespective of the volume value before pause. - The cause for this is, the stream volume is not used to set the volume in directaudiotrack. - Fix is to use the stream volume to set volume during tunnel playback. Change-Id: I59cda146ed88bd5c4186aeb9ae5d165f4a27493f CRs-fixed: 452285
* audio: apply volume on DirectOutput streamsMingming Yin2013-02-161-0/+1
| | | | | | | | - Call stream->set_volume to apply volume on particular stream of DirectOutputs Change-Id: I98e3b856ee508d407f893afad66caade5eda3e4a CRs-Fixed: 445953
* Merge tag 'android-4.2.2_r1' of ↵Steve Kondik2013-02-1214-4829/+1151
|\ | | | | | | | | | | https://android.googlesource.com/platform/frameworks/av into 1.1 Android 4.2.2 release 1
| * Logging to investigate a crashGlenn Kasten2012-12-071-0/+6
| | | | | | | | | | Bug: 6490974 Change-Id: Ib926a9258bde4ee05ed42eea662dff68e426a997
| * Fix log spamGlenn Kasten2012-11-291-1/+1
| | | | | | | | Change-Id: Ie6c982af906dcfd3cdea4b771dfab1f7e47745ca
| * Merge "New VHQ resampler" into jb-mr1.1-devGlenn Kasten2012-11-279-4818/+1129
| |\
| | * New VHQ resamplerGlenn Kasten2012-11-279-4818/+1129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 12b6952da9f25e94d06dd7185bce255924e7e791 Author: Mathias Agopian <mathias@google.com> Date: Mon Nov 19 15:27:26 2012 -0800 fix a typo in SINC resampler that prevented tracks to be mixed we were always erasing the current mix instead of mixing into it. Change-Id: Ib229245f9e5a0d384f1727640a59e9f0469211a2 commit 0019ce082df430278f14ab922e900ce33b64897d Author: Dave Bort <dbort@google.com> Date: Tue Nov 13 01:30:32 2007 -0800 Rename "TARGET" to "MODULE" in the build system. Part one of the grand renaming. API_CHANGE: Third parties may need to update their makefiles. Any variables with "LOCAL" and "TARGET" in their names should now use "MODULE" instead of "TARGET"; e.g., LOCAL_MODULE, LOCAL_MODULE_TAGS. PRESUBMIT=passed OCL=39840 Change-Id: Ica9a7937d3d9552ab84db46ac6eea8a290e404fe Signed-off-by: Glenn Kasten <gkasten@google.com> commit f01adc0cef0e39e75c76d9195ac26a94cac0a100 Author: Glenn Kasten <gkasten@google.com> Date: Wed Nov 14 08:32:08 2012 -0800 Fix build warnings Change-Id: Ic43bcca166a529a6431711b05a7fa21849b6a38b commit 9bb031a565c753a03d9c9397edea318947d80528 Author: Mathias Agopian <mathias@google.com> Date: Sat Nov 10 04:44:30 2012 -0800 more optimizations... calculate the offsets from the phase differently, this happens to reduce the register pressure in the main loop, which in turns allows the compiler to generate much better code (doesn't need to spill a lot of stuff on the stack). this gives another 15% performance increase Change-Id: I2ce3479dd48b9e6941adb80e6d443d6e14d64d96 commit 5a951598f31217b8cd2babd0720c9608ee17291a Author: Mathias Agopian <mathias@google.com> Date: Sat Nov 10 03:26:39 2012 -0800 refactor code to improve neon code we want to make sure we don't transfer data from the neon unit to the arm register file, as this can be quite slow. instead we do all the calculation on the neon side and write the result directly to main memory. Change-Id: Ibb56664d3ab03098ae2798b75e2b6927ac900187 commit b381ee9e83bc9fd18986e79c7809841514ed590e Author: Mathias Agopian <mathias@google.com> Date: Sun Nov 4 15:16:13 2012 -0800 NEON optimized SINC resampler this currently gives us a 60% to 80% boost depending on the quality level selected. Change-Id: I7db385007e811ed7bffe5fd3403b44e300894f5b commit bea077354210242ea193a50b0dbab0fedab25df3 Author: Mathias Agopian <mathias@google.com> Date: Mon Nov 5 01:51:37 2012 -0800 minor cleanups Change-Id: Ia12ee4fb59e90221761bec85e6450db29197591f commit 8f4ed7decbe161a5ff38200b218f5216d80aba46 Author: Mathias Agopian <mathias@google.com> Date: Sun Nov 4 18:49:14 2012 -0800 improve resample test - handle stereo input - input file can now be ommited, in this case a linear chirp will be used automatically - better usage information Change-Id: I5d62a6c26a9054a1c1a517a065b4df5a2cdcda22 commit 5fcd634ea6cb4df27c495abe20f5f9b8ff55d128 Author: Mathias Agopian <mathias@google.com> Date: Sun Nov 4 02:03:49 2012 -0800 change how we store the FIR coefficients The coefficient table is now transposed and shows much better its polyphase nature: we now have a FIR per line, each line corresponding to a phase. This doesn't change at all the results produced by the filter, but allows us to make slightly better use of the data cache and improves performance a bit (although not as much as I thought it would). The main benefit is that it is the first step before we can make much larger optimizations (like using NEON). Change-Id: Iebf7695825dcbd41f25861efcaefbaa3365ecb43 commit d652231abf4c7e2ea1fc89caae730cec1f7259a1 Author: Mathias Agopian <mathias@google.com> Date: Sat Nov 3 23:37:53 2012 -0700 improve SINC resampler performance The improvement is about 60% by just tweaking a few things to help the compiler generate better code. It turns out that inlining too much stuff manually was hurting us. Change-Id: I8068f0f75051f95ac600e50ce552572dd1e8c304 commit 9dc68ef5b94c700c4ee68790e8cbb334c90a538d Author: Mathias Agopian <mathias@google.com> Date: Thu Nov 1 21:03:46 2012 -0700 new coefficients for the vhq resampler previous coefficients were provided by a 3rd party and didn't have a way to re-generate them. we're now using the 'fir' utility. the performance of the filter is virtually identical, except for the down-sampling case which seems slightly better now: It looks like both the previous and new coefficients are generating some sort of clipping for full-scale signals in the down-sampling case (although the new ones seem better), the reason for that is unknown (see bug: 7453062) Also updated the HQ coefficients for the down-samplers, previous ones were a little bit too conservative -- the new ones push the cut-off frequency up by about 1 KHz. Change-Id: I54a827b5c707c7cc41268ed01283758dce1d7647 commit 38e0b8560a6fc1b7124e22e0e09a84a285182f8e Author: Mathias Agopian <mathias@google.com> Date: Tue Oct 30 13:51:44 2012 -0700 fix SINC resampler on non ARM architectures make sure the C version of the code generates the same output than the ARM assemply version. Change-Id: Ide218785c35d02598b2d7278e646b1b178148698 commit a1878128b182696ba508569b4d211d0dfae92463 Author: Mathias Agopian <mathias@google.com> Date: Tue Oct 30 12:49:07 2012 -0700 fix another issue with generating FIR coefficients the impulse response of a low-pass is 2*f*sinc(2*pi*f*k), we were missing the 2*f scale factor. This explains why we were seeing clipping and had to manually scale the filter down. Change-Id: I86d0bb82ecdd99681c8ba5a8112a8257bf6f0186 commit 1a0fb993430acc9f601e6c538305bc407c20ac5d Author: Mathias Agopian <mathias@google.com> Date: Mon Oct 29 17:13:20 2012 -0700 fir a typo that caused up-sampling coefficiens to be wrong up-sample coefficient were generated with a cut-off frequency of 24KHz intead of ~20KHz, which caused more aliasing in the audible band. also increased the attenuation to 1.3 dB on both up and down sampling coefficient to avoid clipping. Change-Id: Ie8aeecf1429190541b656810c6716b6aae5ece2e commit 9520ad6862bd682ad075a9d9e3e94ada9f6e58b6 Author: Mathias Agopian <mathias@google.com> Date: Mon Oct 29 17:13:16 2012 -0700 test-resample: clip instead of overflowing Change-Id: I550e5a59e51c11e1095ca338222b094f92b96878 commit ba36656300f250f7f1fdeb75149749344260e6cb Author: Mathias Agopian <mathias@google.com> Date: Sun Oct 21 01:01:38 2012 -0700 a test app for the resamplers Change-Id: I66852d90d384f1d9e77b51ad1a1ebdbaf61d0607 commit 056a08b9bfd33cf27228c992adc8293a56b01be8 Author: Mathias Agopian <mathias@google.com> Date: Fri Oct 26 14:11:01 2012 -0700 reenable the cubic resampler cubic resampler was disabled because it hadn't been qualified, however after I did some tests, it does improve significantly the sound quality over the order-1 resampler, even if it is still quite bad. also HIGH_QUALITY resampler was partially disabled, it's now fully enabled. It's a big improvement over the cubic resampler in terms of aliasing noise (it's not as good in the pass-band). Change-Id: I70e3658c255896588642697be9eb594ff4ec0f8b commit 8c0241d3ff50ae85167f69b3bd369244894cfa44 Author: Mathias Agopian <mathias@google.com> Date: Fri Oct 26 13:48:42 2012 -0700 improve SINC resampler coefficients - we increase the interpolation precision from 4 to 7 bits this doesn't increase CPU power required, it only increases the size of the filter table but significantly reduces the noise introduced by the quantization of the impulse response. - the parameters of the filter are set such that aliasing is rejected at 80 dB below 20 KHz. Because we don't use a lot of coefficient (to save compute power), there are quite a bit of attenuation in the pass-band: starting at 9KHz for the down-sampler (48 to 44.1), and starting at 13 KHz for the up-sampler (44.1 to 48) -- the transition band is about 15 KHz. Change-Id: I855548d2aab8a0fb0d2a2da3a364b6842d7d3838 commit 69e7dab2192adc1f780464146810629ebd01b145 Author: Pixelflinger <mathias.agopian@gmail.com> Date: Thu Oct 25 19:43:49 2012 -0700 improve fir tool: cleanup, better default, bug fixes - all parameters can be changed on the command-line - added float output - added debug option - added an option to generate a polyphase filter coefficients - added an attenuation option in dBFS - added a lot of comments and references - fixed kaiser window parameter also the default should generate a filter with 80 dB rejection (of the 24 KHz aliasing) above 20 KHz and a 15 KHz transition band around ~20 KHz (for 48 KHz sampling rate). It's not very good but corresponds to the current code. commit 8347499d105a50257c18e9dac652e750b06428b1 Author: Glenn Kasten <gkasten@google.com> Date: Mon Oct 22 17:09:27 2012 -0700 Increase allowed number of VHQ resamplers to 3 Bug: 7378660 Change-Id: I69e33ca2eb4bb9bd38e2c63df62cd1130d68baf6 commit f91cf3cad7f5c4d52614271c89ab468741c5d24c Author: Mathias Agopian <mathias@google.com> Date: Sun Oct 21 03:04:05 2012 -0700 Fix a typo that caused the high quality resampler to produce garbage the problem is that if libaudio_resampler is present, it is those coefficients that will always be selected, but the correct meta-data. Bug: 7385994 Change-Id: Ieebeb37b4dfb62a1a051bc29fae2ce056dbc6621 commit e158a9e4262a174c59469a205658bc3ca4078234 Author: Dan Bornstein <danfuzz@google.com> Date: Fri Oct 3 10:34:57 2008 -0700 Manually merge change #111620 from tc3 to mainline, to keep the automerger from choking on it. p4 sync p4 integrate -r -b android_to_tc3 //...@111620,111620 p4 resolve -a p4 resolve # resolve a couple merge travesties PRESUBMIT=passed BUG=1399648 TBR=edheyl OCL=111902 Change-Id: I854b01553dd92bbf9c864f5a9bd51a3d665f0ac2 Signed-off-by: Glenn Kasten <gkasten@google.com> commit b9f3c26032be7a6ea01a10d93d94826f449e68ab Author: Dave Bort <dbort@google.com> Date: Fri Jan 18 14:51:05 2008 -0800 Rename "Makefile" to "Android.mk" throughout the tree. For <http://b/issue?id=960416>. I've tested this as much as I can, but 1500 open files = easy to mess things up. Please let me know if there's a problem rather than rolling back this change. PRESUBMIT=passed BUG=960416 TBR=joeo OCL=46537 Change-Id: I5a404caf0f398a7afa7ae7abaf2f2a1c6ab490eb Signed-off-by: Glenn Kasten <gkasten@google.com> commit 0c22a9a44c4103483fba1d944acf1354c5eb1617 Author: Mathias Agopian <mathias@google.com> Date: Mon Oct 29 23:44:25 2007 -0700 Tweak the SINC resampler parameters and double the performance. It's using about 10% CPU in the worse case now. Change-Id: I50ac7e6c6702a427fa36ab6d976c507155057507 Signed-off-by: Glenn Kasten <gkasten@google.com> commit b85e41487983ad085b859acf8251e7e54480308a Author: Mathias Agopian <mathias@google.com> Date: Mon Oct 29 04:34:36 2007 -0700 A sinc resampler for Audioflinger. It's not enabled yet, but fully functional and apparently working. It need more "quality" tests. In the 48->44 KHz, it takes about 25% of the CPU time. Change-Id: I80eb5185e13ebdb907e0b85c49ba1272c23d60ec Signed-off-by: Glenn Kasten <gkasten@google.com> commit ba3949ef17cac2ba71cc3096c413782a49c922e5 Author: Mathias Agopian <mathias@google.com> Date: Thu Aug 23 21:01:28 2007 -0700 fix a few small typos in the FIR computation Change-Id: I6e56b514fe520f30f7487f85c64ea5d2a7c19b40 Signed-off-by: Glenn Kasten <gkasten@google.com> commit 7474bfa7de2604021963794dddfe44985648db6a Author: Mathias Agopian <mathias@google.com> Date: Thu Aug 23 03:16:02 2007 -0700 This is a tool to compute the the reconstruction filter coefficients for a sinc audio resampler. Change-Id: I99be2505139b8e0e7647200e1647509d4f7e6067 Signed-off-by: Glenn Kasten <gkasten@google.com> Bug: 7577965 Change-Id: I2c84a9283a1668723bad83e1a119c849c88c3e6b
| * | Camera: Play shutter sound iff enableShutterSound(true) && ShutterCallback !nullIgor Murashkin2012-11-263-9/+14
| |/ | | | | | | | | Bug: 7564718 Change-Id: Ie7821cdee57966d88af048759578439a3e6ecb2e
| * Static AudioTrack plays twice initiallyGlenn Kasten2012-11-161-1/+1
| | | | | | | | | | Bug: 7528721 Change-Id: I10bc16a26f33dba6572b730a170cb3bf00e68e30
* | Squashed commit of updates from CodeAuroraMingming Yin2013-02-063-7/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | auido: Add amr-wb+ codec to ACodec. -Add an entry for amr-wb+ decoder in ACodec. -amr-wb+ non tunnel will be enabled by default. Change-Id: Ied8902eb83da29a3164eb99e88630570a43f681e libstagefright: Create MP3 decoder libraries without OMX layer - With the current MP3 OMX SW decoders, the decoding time is increased w.r.t the libraries without OMX layer that are present in GB. This increase in decoding time results reduction in power savings in LPA mode. - This commit is to remove OMX layer for MP3 to reduce the power consumption in LPA mode Change-Id: I835ab6d013a326f111e513586f884bacd5f7106a audioflinger: EffectModules are updated with device change Issue: Effects modules are not updated with the device change information Fix: 1) Add setDevice information to mLPAEffectChain 2) Remove the return after sending the device route information to Direct track so that mixer thread is also aware of the device change for EffectsChain Change-Id: I82936cd47290946a5e4772e448669d81e0e4d6f5 libmedia : Add a NULL pointer check - Print frame count in AudioTrack::dump() only if the control block is valid Change-Id: Icf594eb721b48795c43d7bd165f6086031ce6efd CRs-Fixed: 435050 libstagefright: Query AudioSystem for suggested record mute duration - AudioSource mutes a pre-defined duration (defined by kAutoRampStartUs) at the beginning of a recording. - Instead, query the audio system for any ongoing playback streams and use its output latency to calculate the duration to mute the incoming PCM stream. - This assumes all current playback threads will be paused once recording is started. Change-Id: Ie9b1d62e7be803ef1d8a59127b95c73e03fa5ce6 CRs-Fixed: 438149 libstagefright: Convert mono to stereo for LPA clips - Sound effects are not supported for mono clips - Repetative calling of effects_configure and effect_process for mono clips is resulting in crash in the sound effects library. - So, Mono clips are now converted to stereo by copying the left sample to right. - This is same as what Resampler does in Non-LPA Playback. This commit is a port of fcc0647fab20ceaf1c07bc10bb243f14c48b114c CRs-Fixed: 421639 Change-Id: Ie579c8d11afe3db8d42a35956e8bf23eeb88cfe6 audioflinger: Fix to set volume from MediaPlayer in Tunnel mode Issue: MediaPlayer.setVolume does not have effect on Playback volume in TunnelPlayer mode Fix: the left and right volume parameters of setVolume are hardcoded and defaulted in DirectAudioTrack. Updating the parameters from the input arguments fixes the issue Change-Id: I8a107ce57284b225b17d95fed0f69e3adc5fb131 CRs-Fixed: 441849 libstagefright: Enable Tunnel Decode for select formats - Enable tunnel mode decode only if the audio mime type matches a supported list. Change-Id: I32afd83e5fda1e90cb671dd747f17cb83bb84fc1 CRs-Fixed:437651 framework/av:: Add support to decode mp3 data in mp4 container - Added support to decode mp3 data in mp4 container packed as mp4a atom and .mp3 atom as well. Port of 8fa3774adf9259b33ee721cfaeff26da42c29928 Change-Id: I1a04022f30a9f6516575440aba7652986ab7dc58 CRs-Fixed: 439897 audiomixer: Use High Quality resampler Use very high quality resampler to upsample to 48KHz sample rate. Change-Id: I1ba5b839f1e74ae71b405538d970e6a966bd1d47 CRs-fixed: 416730 audioflinger: Fix a deadlock - A deadlock will happen if the obit recipient registered by the DirectAudioTrack is called. - Fix this by moving the lock acquisition in DirectAudioTrack::clearPowerManager() to after DirectAudioTrack::releaseWakeLock() is called. - Also synchronize use of mPowerManager in the DirectAudioTrack destructor with DirectAudioTrack::clearPowerManager() Change-Id: Ib127db1406c4a61a4054ca0cf30f4c7347a5c92a CRs-Fixed: 444093 libstagefright: TunnelPlayer: update condition to send SEEK_COMPLETE - If the client tries to seek to 0 (e.g as a result of LOOPING) without ever calling getPosition(), we will always sent an immediate seek notification without seeking. Change-Id: Id2b9d00c611278d0521cb6fd402710f0ec37bbdd CRs-Fixed: 441411 libstagefright: Remove unnecessary code from TunnelPlayer - TunnelPlayer tries to mimick AudioPlayer when trying to delete the extractor source. - It is needed for AudioPlayer as the OMXCodec object is referenced by the CallbackDispatcher as well as AudioPlayer. - This condition is not true for TunnelPlayer, so why do it. Change-Id: I79c4e17d01910e73ad01c5640ef374626313a18e CRs-Fixed: 442365 Add MediaDebug header from CAF Change-Id: I68dbe72f86a49685b82b64927d1aa80231647a7a
* | Camera: Enable QC Camera feature set.Apurva Rajguru2013-02-033-4/+41
| | | | | | | | Change-Id: Ie52b6207293abe5a57d3bbe9d9c43e8c5b070af5
* | libstagefright: Collection of fixes for TunnelPlayerAlexy Joseph2013-01-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Handling of EOS, and triggering EOS was wrong in TunnelPlayer. Seeking when EOS was posted to the HAL was wrong. EOS should not be posted till seek is complete -Also, EOS should not be posted to the app if we are seeking -Player should wake up when seeked, even after EOS was posted from player to HAL -Fixed this issue by cleaning up the code for EOS -Disable tunnel mode playback for streaming use cases to avoid jittery playback Change-Id: I21699d2d5874bde6cbfe549ce0251b252e9a4090 CRs-Fixed: 433346 CRs-Fixed: 432233 CRs-Fixed: 429868 libstagefright: Add new mime for QC TS container - Add new mime type for TS container that is sniffed by extended extractor. This is needed for media extractor to determine which parser to create. Change-Id: I18dcebbbf3b31cea7db29a4dd65385638343bec1 libstagefright: Use software decoder for ADTS content. Use software decoder for widevine content which uses ADTS format. CRs-fixed: 431096 (cherry picked from commit 3edf2e703bcdc47f122864865056d5cb65b7ab43) Change-Id: I50eba673ddd6ec2bbb737577978e61902ff68d13 audioflinger: Fix to release wakelock after closeoutput -In DirectTrack destructor, closeOutput is called after releaseWakelock is done. This may sometimes result in power collapse happening even before actual close sequence of Audio path is completed and will result in high power consumption. -Release wakelock only after closeOutput is done in directtrack destructor. CRs-fixed: 438179 Change-Id: Ibe103804daf2cb09bade998d6d34c3a34508dd09 libstagefright: Add support to change clip duration to enable LPA Added support to change the clip duration threshold value for LPA playback. A new system property 'lpa.min_duration' has been added which controls the minimum clip length for enabling LPA. The default threshold value has been retained as 60sec. Change-Id: I6a8be6d6bf67495977d8c75e5be14723a31353b1 frameworks/av: Skip tunnel mode for playback through AudioCache In the use case of playback using SoundPool, decoded data is cached from player and further rendered through AudioCache. Avoid Tunnel mode for the use case AAC format through SoundPool Change-Id: I21005a5b39f9fb480ae0d525ecb560fec4382620 CRs-Fixed: 437539 frameworks/base: dumpsys rendering statistics for Stagefright - this adds extra fps statisticis - report via dumpsys Change-Id: I7b4d4582c4eb2ccf2d11557844dade92f9e587c0 CRs-Fixed: 435013 libstagefright: Stop extractor source after start in TunnelPlayer Issue: In the use case of frequent suspend resume during Video Playback with HDMI Connected, we encounter a scenario where tunnel player is created and destroyed without the extractor source started. In such use case, stopping the source in reset during the tunnel player destruction leads to failure during assertion check. Fix: Check for mStarted flag to ensure that stop on source is called only after they are started. Change-Id: Ib18e7ee3d10b2cc706944e358046f163d156706c CRs-Fixed: 440239
* | frameworks/av : Playing AAC and MP3 clips using LPA.Kalyani polepeddy2013-01-212-1/+38
| | | | | | | | | | | | | | | | -AAC and MP3 clips are not playing. -AAC and MP3 are not using LPA path. -Enable LPA decoder path and implement LPAPlayer class. Change-Id: I76438319fc72c4898fad5910f8de874f89287687
* | Make an exception for MR0_AUDIO_BLOB in loadHwModule_lmadmack2013-01-141-2/+2
| | | | | | | | | | | | Without this exception samsung JB stock audio HAL crashes Change-Id: I596e6e077f5bd4236359de48db754100e0a133e4
* | audioflinger: Allow mixed use of JB A2DP HALs and ICS policyRicardo Cerqueira2013-01-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Old policies don't address the modules by handle and expect them all to be scanned for supported devices; new modules stopped listing supported devices. The combination of a new A2DP with an old policy left policy unable to find A2DP outputs, so the new HALs couldn't be used. So... if an old policy is in use, searching for an A2DP output, and finds a non-primary HAL that doesn't list any device, assume it's A2DP and use it. Change-Id: Ie946c065b5c325afd02ba3437077f634e079b386
* | Squashed commit of audio changes from CodeAuroravivek mehta2012-12-232-39/+1014
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Add QC specific media format - Add QC specific media extensions - Add QC specific media definitions Change-Id: I7dca90be3b977701d9537f5e017117790a030f1f audio: Compile AudioParameter as shared library - AudioParameter as shared lib is needed by BT support in WFD source. Change-Id: I464b428ace0cbb57ce6bf7bf3b57d51a7d56f032 libstagefright: Send flush on both i/p and o/p ports together - ANR occurs in music due to race condition in OMX component if flush is issued separately for i/p and o/p ports as DSP only handles simultaneous flush on i/p and o/p ports. Change-Id: I5b16cd5a9b57c857dc8bed489d2663b8f54769e3 libstagefright: Enable extended A\V format - Add new files to support extended A\V format Change-Id: I1e61d78d35b868d55fd8e99f95de8cab9c465db4 libstagefright: Framework to plug-in propritory parser - Extend the current framework to plug-in propritory parser Change-Id: Ia586a3048420ddf1515261f20035589447263b7b audio: add support for QCOM audio formats - Add support for EVRC, QCELP, and WMA formats. Change-Id: Iaf80f982fc8b08617132dbd7d524a1748866745c frameworks/av: Support Tunnel Playback - Implement DirectTrack and DirectTrackClient - DirectTrack exposes API to client so it can create a direct output. - DirectTrackClient allows notifications to be sent to the client from DirectTrack - DirectTrack is being used for Tunnel Audio Change-Id: I2fbb18a781d8e44b8d65da9a357f6e39375f063a frameworks/av: Support LPA Playback Add support to enable Playback in LPA mode Change-Id: I1b8ac4904f4735017d62f3757ede7bbb56e62fd3 audio: Send correct channel mask in voice call recording. -Using popCount function to get channel count gives incorrect value on voice call recording. -Only STEREO and MONO bits to be considered to count channels on input Change-Id: I04c2c802422e868bdba0538ff8623dbf9eb659fe libstagefright: Thumbnail mode initial commit - use sync frame decoding mode when kClientNeedsFrameBuffer is set for hardware decoders - hardware decoder will only expect I frames, OMXCodec will set EOS on first ETB to stop more frames from being pulled - skip EOS check on FTB so that the first frame will be handled Change-Id: I0e8974e088fdcc468e27764861c128cfe291499f audio: Add support for QCOM's VOIP solution Change-Id: I1150f536fa204b535ca4019fdaa84f33f4695d93 audio: define QCOM audio parameters - Define QCOM audio paramters for FM, VOIP, fluence, SSR, and A2DP Change-Id: I29d02e37685846f6d4f00dee02e2726b015eaae7 Add ifdefs for QCOM enhanced features Change-Id: Ic8e5fe6ecc058466ced71030883b1af6c2bc055c
* | WifiDisplay: Add an HDCP toggleRicardo Cerqueira2012-12-201-0/+2
| | | | | | | | | | | | | | | | Some WFD dongles have frequent (or permanent) failures while negotiating HDCP with the device, so add a toggle to allow skipping HDCP entirely Change-Id: I999158df84d4a7489c40ecdf07ebcf107d071d40
* | camera: Ignore CAF_RESTART callbacksSteve Kondik2012-12-151-0/+6
| | | | | | | | | | | | | | * Ignore these callbacks which are sent by Samsung camera drivers, as they can cause a deadlock in normal operation. Change-Id: Iae59eb0d3050751c1a4d372c80d430a8ba957252
* | Allow JB_MR0 Audio prebuilts to loadBumble-Bee2012-12-141-1/+1
| | | | | | | | | | | | Usage : add "COMMON_GLOBAL_CFLAGS += -DMR0_AUDIO_BLOB" to BoardConfig.mk
* | Camera: Qcom parameters partial rebaseAnkit Premrajka2012-12-051-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add customized parameters for qcom camera features. Squashed commit of the following submissions to CAF: camera: add custom camera parameters to hardware java file. Change-Id: Ic2b363df6d25a0c3a49aed30e717d10874f533ae Camera: Add support for wavelet denoise Change-Id: I97be72615fe5909987ac430034bbdc16f2d20509 Camera : Add support for histogram in frameworks Change-Id: Ibf751c3b2d488f4be0afaaa3e994372bafeffbe7 Camera: Add ZSL support in framework. Change-Id: I4e863020d7d407d9c3936beb83dc7abf385c4654 Camera: Add touch AF/AEC support in ICS framework In, ICS the old touch AF/AEC functions getTouchIndexAf(), setTouchIndexAf() etc are no longer valid. Added new functions to get the center of touched area. Change-Id: I37d00040f895cd8a4de2e2a438971aa2d9c1a045 Camera: Add support for Red eye reduction Change-Id: Iada280ac33aee8b1114dc40d8d79e0e47ad5c2fd Conflicts: api/current.txt Camera: Enable streaming texture and YV12 feature Change-Id: I814c92b469e0f25baef0ce80338761d1e6443085 Camera: Add frameworks support for high frame rate Change-Id: I9722e9b7e61433651ab5f76f76208853eb1fd849 Camera: Simplify ASD menu and best mode menu. Change-Id: Ia7a1eca9268eec021a6e2c3f7ce2a932e8819d50 Camera : Macro definition change. PIXEL_FORMAT_YV12 to "yuv420p" Why: CTS testcase is expecting "yuv420p" as the format string for YV12 mode. CRs-Fixed: 328252 (cherry picked from commit 0a263f67b75497e4b95b9de8c370ed9496ab59ef) Change-Id: I66f418a52775a969d81bcb332bbe500370e3ab7c Camera: Changes for face detection Change-Id: I7b2172e8690d6e23762e42f5888fecbfda15ba61 Camera: Add support for burst count Change-Id: I4488a5eac1eebb0b5c8e2cc7cbbe7be0c7301be7 Camera: enable HDR feature (cherry picked from commit e40770bbdadd925fc1e07a08249a15981b961570) Change-Id: Ie9ca3066e8e53710bf292d047a3724aefc029854 Camera : Add API to find fullsize liveshot support Change-Id: I3c2fc3578decbe5cf87fded5362f317df0b40b5e (cherry picked from commit 65d80f04892776eec1c19c844eacb8c454b4bd1a) Camera: Set default camera area string The default invalid value for KEY_FOCUS_AREA and KEY_METERING_AREA is changed to "(0,0,0,0,0)" CRs-fixed: 334934 Change-Id: I354802c8611ee5c00a591b96b1a1ca04926969cb Camera: Change the scenemode names in framework To comply with ICS API Specification, SCENE_MODE_AUTO changed to SCENE_MODE_ASD SCENE_MODE_OFF changed to SCENE_MODE_AUTO Change-Id: I8e744f10c728f469923b09f69d6d64bc5c7c6850 Camera : Framework changes for camcorder UI menu Change-Id: Iff9e9021da44b67f81a24c828b960113ee249248 Camera : Remove unwanted video resolution in Framework - FWVGA, WQVGA resolution UI options are removed for camcorder. Change-Id: If621140966b01dbc8c30a4d161e6771528b8adda Camera : Enable FWVGA and WQVGA resolutions in camcorder media profiles Change-Id: Iad9cc33f7b6d8eb7de21df372c016edeef0b99ba Unlock camera AWB lock only when white-balance is changed. bug:5633546 Change-Id: I90bb4b5b445daedf38a64e2f8fb980fc0f0aaa81 Change-Id: Ie3cc15132489502e64321776d49d96846b5705d6 Conflicts: camera/Android.mk camera/CameraParameters.cpp include/camera/CameraParameters.h services/camera/libcameraservice/CameraService.cpp services/camera/libcameraservice/CameraService.h
* | CameraService: Add compatibility for OMAP ICS blobsx01180642012-11-262-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Workaround the conflict created by usage of the 0x800 enum in JB (focus move) vs its OMAP usage in ICS (burst jpeg) Originally: CameraService: Adds support for burst compressed images Signed-off-by: Emilian Peev <epeev@mm-sol.com> Moved the changes under OMAP_ENHANCEMENT Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Change-Id: I1f17675b2854793de83c2b7cdecafc039c46f355 CameraService: Adds support for burst compressed images Depends on: - http://review.omapzoom.org/#/c/24537/ - http://review.omapzoom.org/#/c/24538/ Change-Id: I1f17675b2854793de83c2b7cdecafc039c46f355 Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com> Signed-off-by: Emilian Peev <epeev@mm-sol.com> Signed-off-by: Daniel Levin <dendy@ti.com> Add CAMERA_MSG_RAW_BURST handling to CameraService Change-Id: Id958836e726e9908f60311d5bfc6d26eb8298cea Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com> CameraService: Disable capture message types before stopping preview If we try to stopPreview in the middle of capture, these callbacks might occur. In this case, stopPreview will already be holding mLock while the message handler will try to grab mLock. Deadlock occurs if the stopPreview and message callback dependencies are in the same thread. Issue reproduced with Image Capture/Home Key scenario. Port from GB: Issue is still reproducible (although extremely rarely) in ICS. Signed-off-by: Emilian Peev <epeev@mm-sol.com> Signed-off-by: Jean Johnson <jean-johnson@ti.com> Signed-off-by: Daniel Levin <dendy@ti.com> Change-Id: I222d00f8bd69c11302a35610095efe0ddc49f876
* | Camera Service: Change max number of cameras to 3Dejan Ivanovski2012-11-261-0/+4
| | | | | | | | | | | | | | | | Maximum number of cameras increased to 3 in order to support Stereo camera in addition to the existing ones. Change-Id: I63279daa17723669a8f116798b2687b73ddb5516 Signed-off-by: Dejan Ivanovski <x0162121@ti.com>
* | Add support for ICS audio blobsRicardo Cerqueira2012-11-222-2/+50
|/ | | | | | Enable with the ICS_AUDIO_BLOB CFLAG Change-Id: Ie174d5997202b8931c1f11db62b6ec2e377f096a
* Camera2: Don't hold locks while waiting to sync.Eino-Ville Talvala2012-10-241-33/+35
| | | | | Bug: 7409877 Change-Id: Ia3a0bc4f0ab4e19fca868ba04a870cf8e8ee7adb
* Merge "Camera2: Increase mode update timeout." into jb-mr1-devEino-Ville Talvala2012-10-231-1/+1
|\
| * Camera2: Increase mode update timeout.Eino-Ville Talvala2012-10-231-1/+1
| | | | | | | | | | | | | | | | | | | | During camera startup, it might take a few hundred milliseconds before requests start to be dequeued by the HAL. Increase the timeout for synchronizing mode changes and triggers so that triggers near startup don't time out. Bug: 6970465 Change-Id: I9dc35378e8018ec18ae31be874fcb094f8a9a0e9
* | Increase allowed number of VHQ resamplers to 3Glenn Kasten2012-10-221-1/+1
| | | | | | | | | | Bug: 7378660 Change-Id: I69e33ca2eb4bb9bd38e2c63df62cd1130d68baf6
* | Fix a typo that caused the high quality resampler to produce garbageMathias Agopian2012-10-211-1/+1
|/ | | | | | | | | the problem is that if libaudio_resampler is present, it is those coefficients that will always be selected, but the correct meta-data. Bug: 7385994 Change-Id: Ieebeb37b4dfb62a1a051bc29fae2ce056dbc6621
* Merge "Camera2: Fix potential deadlock" into jb-mr1-devEino-Ville Talvala2012-10-191-7/+11
|\
| * Camera2: Fix potential deadlockEino-Ville Talvala2012-10-171-7/+11
| | | | | | | | | | | | | | | | | | | | setPreviewWindow was holding a lock during long-lasting HAL calls which may cause deadlock if the HAL calls back into the service during the call. Stop holding the lock during these calls, since it's not essential to do so. Bug: 7320517 Change-Id: I4a35703d751e22ac32979b5a1288e291610576e7
* | Remove active track when thread goes to standbyGlenn Kasten2012-10-181-3/+3
|/ | | | | Bug: 7369232 Change-Id: I7ff9f525dad4be0aef562a53015b06ee7d3d50f1
* Merge "Camera2: Improve quirks focusing behavior." into jb-mr1-devEino-Ville Talvala2012-10-162-2/+9
|\
| * Camera2: Improve quirks focusing behavior.Eino-Ville Talvala2012-10-162-2/+9
| | | | | | | | | | | | | | | | | | | | | | - When scene mode is set and the AF quirk is in use, don't change AF mode and then cancel when AF cancel is received. Just change mode since that also implies a cancel. - Only trigger quirks switch when a focusing area is set. Bug: 7318812 Change-Id: I28d8755553bd78052e774701210cb94d84ee2046
* | Merge "Fix track estimation for presentation complete" into jb-mr1-devJean-Michel Trivi2012-10-161-4/+2
|\ \ | |/ |/|
| * Fix track estimation for presentation completeJean-Michel Trivi2012-10-161-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Audio tracks were not using the right latency estimation for signalling the completion of their presetation. This caused the synchronization mechanism between playback and record to be off, and a synchronized recording would contain some of the audio that was meant to be over once recording would start. Use the playback thread's latency reporting which takes the audio pipe into account. Bug 7237669 Change-Id: I23a907a53ad0b0d68d246789ec595a77a79fced5
* | Camera2: Don't touch frame counter on output frames.Eino-Ville Talvala2012-10-161-1/+1
| | | | | | | | | | Bug: 7357069 Change-Id: I9cd0cdcc23959bfecced5f47bb9e8c59c997dade
* | Camera2: When focus is already locked in CAF mode, do not trigger HAL.Eino-Ville Talvala2012-10-163-4/+41
|/ | | | | | | | | | | | In HAL2 CAF modes, once focus is locked by an AF trigger, additional triggers will not cause AF notifications, since the state will not change again until a cancelAutofocus call. Since the old API still expects to see a notification, short-circuit this at the service and send an immediate success notification. Bug: 7318298 Change-Id: Ib209a24eaf2a35a247d06aea671efe80a33d751e
* Camera2: Don't error out of startPreview when already recording.Eino-Ville Talvala2012-10-101-4/+7
| | | | | Bug: 7327474 Change-Id: I603da5b8bd58e5a700d7ae0b3d34bd89bbcb1d53
* Merge "Support querying active record sources" into jb-mr1-devJean-Michel Trivi2012-10-102-0/+13
|\
| * Support querying active record sourcesJean-Michel Trivi2012-10-102-0/+13
| | | | | | | | | | | | | | | | | | Add support for querying whether there is currently a recording underway from the specified audio source. Bug 7314859 Change-Id: I986b231a10ffd368b08ec2f9c7f348d28eaeb892