summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* input: add keymapping and handle www/com key for keypads in icsDonovan Bartish2012-07-051-6/+16
| | | | | | | | | | | | | | Based off of this commit, updated for ics: https://github.com/CyanogenMod/android_frameworks_base/commit/ebb5e47760cc156fba6d6a93ad0dfaeb562f4771 Allows keypads to have custom keymapping, and brings back www./.com key function Fixed: Corrected all wrong entries to api/current.txt, including for those that already passed gerrit review @hide used in java for all non aosp api Change-Id: I0ffb35dae441e3ef7a4924492cc9168939551d3f
* Merge "Revert "libstagefright: Fix MPEG4 timestamp"" into icsSteve Kondik2012-06-261-21/+18
|\
| * Revert "libstagefright: Fix MPEG4 timestamp"Pawit Pornkitprasan2012-06-251-21/+18
| | | | | | | | | | A lot of applications (e.g. QuickTime, mkvmerge) apparently does not like the 64-bit timestamp and will fail to open the file. This reverts commit 893586d4b7a0dbea070404323837ef4f0a7c9b79
* | libstagefirght: Fix for music skip in LPA A2DP caseVinay Vaka2012-06-061-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Portion of music repeating twice after disconnecting and connecting A2DP -When A2DP disconnects, timeplayed will be updated with the data sent to A2DP. But Decoder thread already has some decoded data which is not sent to A2DP.Here if A2DP connects back decoder thread calls fillbuffer with the time played position. Because of this fillbuffer getting some of the decoded data which is already decoded earlier. -To address this issue when the A2DP disconnect and connect happens clearing all the buffer which are there in response queue. CRs-Fixed: 356571 (cherry picked from commit b52619bdc157646278fce30ceb84057370f030c1) Conflicts: media/libstagefright/LPAPlayer.cpp Change-Id: I98578d4470021757625ad1203682da4bb45cd055
* | libstagefirght: Fix for data loss in A2DP playback with repeat modeVinay Vaka2012-06-061-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Data loss is observed in A2DP at the starting of second playback with current song repeat mode -When the file EOS reaches Awesomeplayer calls seek to zero and pause the LPAplayer till A2DP thread sent all the data to A2DP. Since decoderThread not aware that LPAPlayer in pause state it keeps on calling fill buffer.But A2DPThread will be blocked till LPAplayer resumes from pause.So buffers which fillbuffer returned in pause state are not sent to A2DP and these buffer will be over written. -Added the condition to avoid fillbuffer in decoderThread when the LPAplayer is in pause state. CRs-fixed: 351079 (cherry picked from commit b2ecd5f5b39e3fbee3f73f533897b0d14624244a) Change-Id: Ib424a5f5794f91df4cad4fbbd7ab27faffcc4ba2
* | libstagefright: Fix for seek before end of clip issueSatya Krishna Pindiproli2012-06-061-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - When the clip is seeked to just before the end of the clip, the control skips to next track instead of the remaining part of the clip being played. - When the clip is seeked, in LPAPlayerALSA, fillBuffer() is called which sets mReachedEOS to true when the last buffer is reached. AwesomePlayer on the other hand calls onCheckAudioStatus() after seek complete which in turn checks if reachedEOS() returns true in LPAPlayerALSA and calls postStreamDoneEvent(). Currently, reachedEOS() returns mReachedEOS which is incorrect because there still are buffers to be written to the DSP. - Before postAudioEOS() is called, mReachedOutputEOS is set to true and is returned by reachedEOS(). CRs-Fixed: 339602 359591 (cherry picked from commit fe2345716be459f38088df2af79b53b1acf71d36) Change-Id: I1334c8b0ab1e1d6cc386cc770c73ddc50af25c2e
* | libstagefright: Set session id to one for LPA playbackKrishnankutty Kolathappilly2012-06-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | -ALSA HAL needs to differentiate between LPA and Tunnel mode playback for setting the correct routing path. -The session id for LPA playback is set to one. CRs-Fixed: 352002 (cherry picked from commit 5382f7f8feb609dfecae961641b0b5b0b6218371) Change-Id: Id8b88ad838ce307b907444d4c5b9e25c3c3a19f3
* | libmedia: build with AudioParameter if neededcodeworkx2012-06-051-0/+5
| | | | | | | | | | | | | | Usage: BOARD_USES_LIBMEDIA_WITH_AUDIOPARAMETER := true Change-Id: I4d33afcf2af200f70120ee9b9ee03c8830712686
* | stagefright: Turn off verbose logging in LPAPlayerSteve Kondik2012-06-021-1/+1
|/ | | | Change-Id: I3e90fad0b93b594fda4357a8b7094d94a3b22469
* libstagefright: Fix MPEG4 timestampPawit Pornkitprasan2012-06-021-18/+21
| | | | | | | | MPEG4 timestamp needs to be stored with the classic Mac OS epoch not the unix epoch. Header needs to be changed to version 1 to support 64-bit timestamp which is needed to represent the time. Change-Id: Ie86c62349edaa96dd9c5c5cb8e2bdb89794ebb5f
* libstagefright: LPAPlayer: Fix choppy playback on BT.Sidipotu Ashok2012-06-011-2/+10
| | | | | | | | | | | | | | | -Music playback on BT A2DP device is choppy/glitchy -Decoder thread hogs the CPU this starves A2DP thread from data. -Fix is to use small buffer(64k) only in the case of A2DP playback. CRs-Fixed: 33353851 (cherry picked from commit e64bb36f81b22c93d3af156451b1236966c99ea4) Conflicts: media/libstagefright/LPAPlayer.cpp Change-Id: I2e9450a2be6f9e79e68d525d2119d33154d132b7
* Merge "framworks/base: Changes to use MVS path for VoIP feature" into icsSteve Kondik2012-05-311-0/+12
|\
| * framworks/base: Changes to use MVS path for VoIP featureRavi Kumar Alamanda2012-05-301-0/+12
| | | | | | | | | | | | | | - These changes are merged from GB commit 3926cd8fea11e65f47272c2099a5a540ab46b580 Change-Id: I9bc09e3f82741db394bf5e9585e9e35a454112e5
* | frameworks/base: Enable LPA for music stream only.Tejas Shikhare2012-05-312-3/+10
|/ | | | | | | | | | | | Enable LPA playback for music streams only. There are no significant power savings for using LPA with other modes like ringtone. CRs-Fixed: 357327 (cherry picked from commit 75484628e5a915422f822b9759cb3ce8f9c4f0ad) Change-Id: Ibd3940f74bd6b0cf2446e1159640d39a107c2929
* Sound preference: Safe volume restore when plugging in a headset (1/2)Phil Tunstall2012-05-281-1/+28
| | | | | | | | | | When enabled, volumes that were above a threshold (~55%) the previous time something was connected to the audio jack will be restored to that threshold rather than their full level. Affects all sound streams apart from voice call audio. Change-Id: I0007a09ce75b55c95986e38a4cbb24fe4e8200a9
* Fix crashes on video playback.Danny Baumann2012-05-261-0/+2
| | | | | | | | | | Change I8ee9162536da5711e383dd1d89dca4fa1da107be missed correct variable initializations at one of two places, which led to a null pointer dereference. This patch fixes that. It also updates the variable that stores the original allocated length to be of the same type as used in the OMX buffer header. Change-Id: I15b083da8565ec3e8769d18ba1f19d3b12f54cb1
* Merge "audio: Squashed commit of LPA support from CAF" into icsSteve Kondik2012-05-2521-38/+5742
|\
| * audio: Squashed commit of LPA support from CAFTejas Shikhare2012-05-2121-38/+5742
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Patches wrangled by Kali frameworks/base: LPA and routing api implementation - Integrated routing APIs for LPA with the new AUDIO HAL - Integrated LPAPlayer for LPA Playback on 8660 Change-Id: I345f62afa53057261602042ac348d43333cc8732 libstagefright: Integrate LPAPlayerALSA for LPA playback on 8960 Change-Id: Ie7ec686bef7a8c0b41c06ae11bdf49f84e136197 frameworks/base: Fix for no audio while playing specific ADIF clips - Now the SW AAC Decoder is OMX based and handles decoding from the beginning after the port reconfiguration. So it is not required to force seeking to the beginning when INFO_FORMAT_CHANGED received, after decoding the first frame. - Removed the same to fix no audio issue with specific ADIF clips which reports INFO_FORMAT_CHANGED. Change-Id: I057312d1f9e0e5ced26bb5234cbc79d95be53b1b CRs-fixed: 321723 libstagefright: fix for crash in AwesomePlayer startAudioPlayer_l -Issue: check(seeking) fails in startAudioPlayer_l for LPA playback -Cause: LPAPlayer does not set seeking flag after starting playback in the middle of a clip -Fix: Set mSeeking flag and ReadOptions in LPAPlayer::Start Change-Id: Iac91a2b328be41cb98f6fdfa7c62e0b93a3a48a4 CRs-fixed: 322725 frameworks/base: Fix for pause/resume issue while LPA playback - If LPA playback is paused and resumed immediately, the audio resumes for sometime and then the playback switches to next clip due to error in OMXCodec. - In the LPA pause implementation, the source, OMXCodec, pause is being called which does not handle executing to pause state transition. So this causes decoding issue while resuming. - Removed unnecessary pause/resume API calls to OMXCodec to fix the issue. Change-Id: Ic7713c43aeedd9ec4818def9275653e7756e3a91 CRs-fixed: 322324 libstagefright:Fix for no progress bar update while seeking at end of LPA clip -progress bar doesnt update while seeking at end of LPA clip. -EOS is not posted to Awesome player when i/p EOS is reached,all input buffers have been decoded and response queue is empty. -Post EOS to Awesome player when i/p EOS is reached,all input buffers have been decoded and response queue is empty. CRs-Fixed: 321961 Change-Id: I6f90ac577825d807b99e724b3948f7cca1478e8d frameworks/base: Enable Audio effects for LPA output - Added the support to apply Audio Effects on LPA output. Change-Id: I08b64167e9beac7fbe84ad2610f0177766be7c7e frameworks/base:Fix for memory leaks during LPA playback -Sigkill errors while running audio monkey causing the device the monkey to stop Memory is getting critically low leading to background process getting killed by the OOM killer. -Memory leaks during LPA playback is leading to memory exhaution. -Fixing the memory leaks. Change-Id: I546d2a08d33789b3433d8ea61c30f6cba02a9f7c CRs-Fixed: 326720 libstagefirght: Update timeStarted to use system time in LPAPlayer::start - Issues: Paussing LPA clips at the last second causes the control to the end of next clip - Causes: TimeStarted is not updated correctly if pause cmd is received before decoder thread starts. - FIX: Update timeStarted to use system time in LPAPlayer::start() Change-Id: If01b397b251c8aa20feed581c260d5ff818a2834 CRs-fixed: 324298 frameworks/base: Prevent effects application in paused state - The issue is that effects are being applied on the LPA buffers in paused state. - After 3s in paused state, session of the playback is deregistered hence effects should not be applied - The issue is fixed by stalling the effects thread till the playback is resumed and session for LPA is re-establised with MediaPlayerService Change-Id: I87f0f1cfcaaaf0f95a7218f46ea76d043c84bb77 CRs-Fixed: 328300 frameworks/base: Syncronize resume and onPauseTimeOut - All the mixer controls are closed 3s after pausing playback through the onPauseTimeOut function - A scenario where onPauseTimeOut is closing mixer controls, a resume is issued, causes a crash - Synchronize these 2 functions using a mutex to prevent concurrent execution. Change-Id: Ic0e84423f7e3e4a26c441c73235e61d9a13c225d CRs-Fixed: 329312 frameworks/base : Prevent pcm_prepare when A2DP is enabled - pcm_prepare should not be called without setting routing controls, as this will result in driver bad state. - Fix the issue by calling pcm_prepare only when A2DP is not enabled and routing controls are set. Change-Id: Ic2db9224d70500c392fa31804844aa934eca633d CRs-fixed: 327396 libstagefright: Flush ASM before closing the stream - By calling pcm_prepare we can flush the driver and dsp so that playback close can issue an eos from kernel Change-Id: Icb5249ff8c480405b4b8ac5ce5f995ed5d73bf0d CRs-Fixed: 331532 (cherry picked from commit 8bdfa122ec7ff72f61ea01f932d96d94dc27f016) libstagefright: Fix for seek issue in mp3 streaming playback -Issue: In LPA playback if seek is issued, the pcm driver starts after a fill buffer and write is completed. If pause is issued before the driver starts, audio pause fails and results to a sudden jump in the playback or to an EOS at random -Testscenario: Flush,immediately followed by Pause in LPA playback. -Fix: Pause is handled when the pcm write is completed. This is acheived by a conditional wait on the pcm write done. CRs-Fixed: 331099 (cherry picked from commit 6ce15986ee7f2155044f79c505ebcd5a310a6c0d) Change-Id: I605316bba2d964ba3d52f6a7cc42e7e390d92fdf libstagefright: prevent trigger for stale events - prevent event thread from running if response queue is empty which means there is no buffer with the driver CRs-Fixed: 336970 (cherry picked from commit 690fb2d96a58b2341e49e3424d7e0efe7093aad7) Change-Id: Ie86a900e77175b2786cfe10fc0c64457e9fc4bae libstagefright: Ensure pcm_prepare is called only when routing is still active. - LPAPlayer does Derouting, pcm_prepare and pcm_close during pause. - pcm_prepare should not be called after derouting, as the driver tries to prepare a session which is already derouted. - This results in no backend errors in kernel for LPA Front end session as the backend is already closed with derouting. - Fix the issue by ensuring pcm_prepare is always called only routing is still active. Change-Id: I4b4eef7f9775b6141a5ec9a0eed82ca2f7a5c6d6 CRs-fixed: 341268 libstagefright: Add support in LPA for DSP timestamp. Change-Id: Ie9525b0ab201b9de828a25ef1cd9731567f4610a CRs-Fixed: 338065 (cherry picked from commit 2457cb32ec93a11e2a95d77557daaf6be0e1529a) libstagefright: honor write done event during pause Queue up completed buffers for decoding even if playback is in paused state as there is concurrency between write done and pause CRs-Fixed: 340469 (cherry picked from commit c9116b67545c5d973c255fba55c031271d3c38a4) Change-Id: Ifdc2cec4d92773ac279c02df7067bd95c32ca4a4 libstagefright: Fix A2DP seek to EOS issue in LPA - In A2dp scenario, when seeked to EOS and 0 bytes returned by decoder, eos was not issued to the app. This resulted in no audio. - Put the buffer back in the request queue in case of 0 decoded bytes and post an AudioEOS event to the app. Change-Id: Icb2cc053d71d02c8adb90fc5be1922ea813331e9 CRs-Fixed: 339608 (cherry picked from commit cdcdc2e6c6967de31476b1ece3702b645989e1df) Conflicts: media/libstagefright/LPAPlayerALSA.cpp LPAPlayerALSA: Fix for acquire/release Wake-locks. -Requires a wake lock to ensure that 3s timer after playback runs in suspend mode to get into TCXO shutdown. -Add support for acquiring wake locks from mediaserver process -PowerService is used for acquiring/releasing wakelock Change-Id: Icb21c319eee24aa38d56afcd8eddcb6315b74558 CRs-Fixed: 338542 libstagefright: Fix concurrency issue during A2DP switch. - When A2DP is disconnected, Pause is issued by the app. Sometimes, pause happens concurrently with stop, resulting a stuck in write. - Fix the issue by switching the sessions, when resuming the playback so that above concurrency is avoided. CRs-Fixed: 338086 (cherry picked from commit 29c0c17f53b6c945605e91da9108eea958b17bea) Change-Id: I7ee7a3ca0569006c404cb5cca885271b53476695 libstagefright: Initialize audio routing flag in the constructor If the audio routing flag is not initialized, it could result in some rare errors which will cause routing to be in bad state. (cherry picked from commit 74d381b2ca643515abf2bafa587df0b1cc7e56c7) Change-Id: I3f4b9b3e172921a397f4ad2a55c8e0e429af13bc libstagefright: Fix for application not responding when going to next song - When a song is ended, the driver is paused, flushed and then close. - The issue is that under some scenario, the song is ended before the driver is initialized. Pausing the driver as result causes a native crash - Issue is fixed by only issuing the pause to the driver if it is started. Change-Id: Ib839a087136526e9186fc37c8cb29c681612e6c9 CRs-Fixed: 339578 (cherry picked from commit a7117328a21eca0fc422b56c12acfab25f17873a) libstagefright: Add wake lock support for LPAPlayerALSA - LPAPlayerALSA now holds the wake lock while LPA playback is on going - This allows external applications who do not hold wake lock to use LPA playback CRs-Fixed: 342451 (cherry picked from commit 9621db1c1cf2092b1b51983c91434612c4cd8480) Change-Id: I3ff8bbdc2535e29b3e0b94953d9ce6364b5c0782 libstagefright: pause AudioStream when bt is disconnected. Notify AudioPolicyManager that device is in paused state when BT is disconnected CRs-Fixed: 349091 (cherry picked from commit e2fd42a43f92696f917b74b23a1cce9ac276a707) Change-Id: I5377f8568e1fccb11685ca0e718968eb1823d539 libstagefright: Decrease LPA buffer size to 256 kb CRs-Fixed: 344793 Conflicts: media/libstagefright/LPAPlayerALSA.cpp Change-Id: Ia9d13985dffa0473b3bdadc547eeb06b114b5a8b libstagefright: Change thread priority for LPA threads - Since A2DP behaves like a render thread, there is a need for it run at urgent audio priority. (cherry picked from commit 3b81741adf7b743cfa72874f63bf561950c9cd22) Change-Id: I9d7ee924766fef1ac77c47dc445d8d32a305d700 libstagefright: Update LPA Player to use ION Create LPAPlayerION and LPAPlayerPMEM files to separate memory allocation using ION and PMEM and change the existing files accordingly. CRs-fixed: 341467 (cherry picked from commit 63a2671e848d5f8bc9295706974d5c7bee7b2002) Change-Id: Ife594fb9c36a98d4a3be47ae4140a9c82ec477f7 frameworks/base: Fix to prevent deadlocks with Audioeffects. -Initialization of LPAeffectschain is not protected and locking/unlocking the Effectschain based on this value can lead to a deadlock scenario's during Stability or Monkey runs on Music app with Audioeffects in action. -Protect the initialization of LPAeffectschain. CRs-Fixed: 336281 (cherry picked from commit f0c6443679b0244a6cddf3042aa4b92b69f4d178) Change-Id: I27ec5b6cbbd3c6e72fb234542aa159ebec5df6be AudioFlinger: Fix for LPA volume change when headset connected. -When headset connected, volume is increased for LPA media playback in repeat mode. -Fixed volume setting in LPA mode. CRs-Fixed: 339790 (cherry picked from commit bc410c04dfed2caca9759e6eaf1ada6984f359cb) Change-Id: Id94920580384812353e3ae95f8f61511a1ec37c2 frameworks/base: Add support for LPA volume control using mediaplayer API. -Issue: Setting LPA volume using MediaPlayer::setVolume() API fails. -Cause: Current implementation of this API has only software decoder volume setting. -Fix: Add support to call kernel API for volume, as LPA volume is applied in DSP. Change-Id: If2eee5d03f421b1097b9a7f53d3ba3e4f293f4d8 CRs-Fixed: 317323 frameworks/base: Do not use LPA mode for ADIF clips - When ADIF clips are being played in LPA mode, if it is paused for more than 3sec and resumed, it results ANR - This is due to the limitation that ADIF playback cannot be seeked. When LPA playback is paused for more than 3sec, all the buffers with LPA driver are flused and closed. On Resume, it tries to seek to the paused location, where it fails for ADIF clips. - Fixed by not allowing ADIF clips in LPA mode. Change-Id: I25890844b0a28a474c9ac073d2576fca56f60e8c CRs-fixed: 324296 libstagefright: Fix LPA mute issue via browser. -When Playing LPA clip via HTML link, mute option fails to work. -In MediaPlayerService, setVolume API handles only for non-LPA case. Need to change to call LPA Volume update too. -Call mSession setVolume incase of LPA. The AudioFlinger has to keep track of previous volume when muted. This volume is again applied back when unmuted since App sents volume as unity when unmuted which is not the previous volume before mute. This change fixes the below issues --mute/unmute option via browser --increase/decrease volume when mute-should not affect mute option. --While in mute pause for 3sec and resume,mute is lost. CRs-Fixed: 327159 (cherry picked from commit 440de6deaae11b527b7250039e5172a690152e8c) Change-Id: I73e9773f0a507c47947051bceebeb013ebca8e67 media/libmedia: Release the session only for non-lpa clip Issue 1: - The session id is not acquired for LPA clips in AudioTrack however destructor tries to release it at the end of LPA Playback. - This cause corruption and eventually causes the ref count to decrease on every LPA clip. As a result the application of effects is not consistent - This issue is fixed by releasing the session only during non-lpa clip Issue 2: - There was noise for initial buffers during LPA playback - Mixer thread was applying effects for LPA effect chain - Prevent this by ensuring when lpa session is active, mixer thread does not apply effects on the LPA chain (cherry picked from commit 95932d301acf6d331fd8c42154ae69a7c98a9a33) Change-Id: I96dbbab831f21bc40ff98f202902ee753ab61fb6 CRs-Fixed: 328645 libstagefright: Create new AAC and MP3 decoder libraries without OMX layer - With the current AAC and 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 AAC and MP3 to reduce the power consumption in LPA mode. (cherry picked from commit 16b4260ff4a200b2ad69290be714578ffa33424f) Change-Id: I4ef13031207952074d0788a8953ebc38cfe48cee CRs-fixed: 334400 fix build Change-Id: I8fe32083911a41e1517b9e73b618521b38a0db25
* | stagefright: Fix dyslexic ifdefSteve Kondik2012-05-211-4/+4
|/ | | | | | * This is backwards. Ooops. Change-Id: I2adca96ff868942eca58295bd79d2993ab4999c7
* libstagefright: Squashed commit of updates from CodeAuroraSteve Kondik2012-05-197-80/+286
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Secure o/p buffers only when i/p buffers are secure ION allocation fails on o/p buffers when i/p buffers are not secure. Disabling secure allocation of o/p buffers when i/p buffers are not secure. (cherry picked from commit ea10201ece24a3c61b79202b93e440eddb624d65) Change-Id: I329c8428d3e528f7d177a64b8605090357f34035 CRs-Fixed: 336727 libstagefright: Synchronize access to OMX class member variables - Protect mLiveNodes KeyedVector member variable in freeNode function - This variable might be accessed concurrently if two OMXNodeInstance objects are freed. (cherry picked from commit 796ea3f006ccac48a1fa1eae904667238c0ebbf6) Change-Id: I01b12da57f44c1dfa978763c19de0041dc231b2b CRs-Fixed: 332651 libstagefright: Fix HFR crash in MPEG4Writer From ICS, for video kkeyframerate is used instead of kkeysamplerate. This needed correction in MPEG4Writer. kkeydecoding timestamp is used for sending the decoding timestamp. The decoding timestamp had to updated for HFR. Change-Id: I194a218b00ffcd41b1646a0c29c26a7a8f87e819 libstagefright: Increase bit rate for HFR recording Increase bit rate for high frame rate (HFR) recording feature to reflect the corresponding increase in frame rate CRs-Fixed: 334201 (cherry picked from commit a5118e46646210f9e174c5d5db8c2cfa13e5bd65) Change-Id: I1d77206e43d93ceef75a69113b124e2feb159663 libstagefright: Fix bitrate and I frame interval values for HFR mode CRs-Fixed: 341667 (cherry picked from commit 331cf5e8dffb1bbd96a92a275730fd90d7d49b2c) Change-Id: Icfd92689752951dbe6c2b659c9c4891ca30b8d62 libstagefright: Fix video encode I-frame interval setting The i-frame interval setting is not configured properly when b-frames are enabled. Fixes the calculation for the i-frame interval setting when b-frames are enabled. CRs-Fixed: 348669 (cherry picked from commit 3fed07eac060215748b67e9d641f84bd684e6a2b) Change-Id: Idbbeb1df638635336dd54dc2fe227d06a367ea79 libstagefright: Fix for b-frame encode and decode - fix timestamp calculation during encode and playback for clips with b-frames Change-Id: Ibe6658475c8bf9ceca05015b81536f6bac737da6 libstagefright: OMXCodec error handling fix - Drop messages in OMXCodec ERROR state only for s/w OMX component Change-Id: If9940f1f1429821587938fe005c526ab7559ff8e libstagefright: Fix ANR issue for recording timelapse and b-frames videos. CRs-Fixed: 340493 (cherry picked from commit 2f46989491d8f7f8ac480a39620803736101fd80) Change-Id: I41ae8296fbc4cc480e7ad8ce4451c6fd5753d4b7 libstagefright: Free all video decoder output buffers on an error - OMXCodec calls dequeueBuffer on the NativeWindow in a loop and registers output buffers with the OMX component - If a dequeueBuffer fails, the buffers already registered with the OMX component were not getting freed laeding to a memory leak. Change-Id: I56abc7577b10e7540bdd6488708ae6830b9d907b CRs-Fixed: 351388 (cherry picked from commit 0d4e06d9a53240e0e7aca05a64faea353babb029) 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 Change-Id: I28aed12ad02adeac61caffbb00e3082640a5f6d4 (cherry picked from commit 031e95469b897680670a2480e55be727d00bbd82) libstagefright: Fix version and flag values for ctts box atom - Write proper value for version 1 of ctts atom in MPEG4Writer - Check against proper value for version 1 of ctts atom in SampleTable CRs-Fixed: 340309 (cherry picked from commit 86de95c33ed597dc3b2f9b8db95c4115dfeb1c4b) Change-Id: Iaa924870cadca501550d5ef838f4265a81c53d50 libstagefright: Add member variable to save arbitrary mode value - Add member variable in OMXCodec to save aribtrary mode value. (default: true) - Avoid overwriting the value of key kKeyUseArbitraryMode in track metadata. OMXCodec::Create gets a const pointer to the track metadata. Change-Id: I94dd24933f112109a1469b2b2a24f0b82b19a104 CRs-Fixed: 340148 (cherry picked from commit e4c000bad2e669d156c82887070c5f37f7b1c00c) libstagefright: Pass width and height in android_native_rect - android_native_rect expects four fields; top, left, bottom, right. - Contrary to what it looks like, the bottom and right fields are to be used as width & height (instead of co-ordinates) - Fixing use of native_window_set_crop to use the adjusted values (cherry picked from commit d1050e76b966a405e539a89a1aa2aee4c972b6ca) Change-Id: I80f0de1c1e73d979f3499fcd0a7289e6ab00332b libstagefright: Crop the native window with display resolution We provide the native window with the display width and height in set_geometry. On the surfaceflinger side, they assume that this is aligned, which causes problems for HDMI. Instead we'll now pass in the aligned stride and slice in native_window_set_geometry, then specify the desired display width and height and call native_window_set_crop. CRs-fixed: 332778 Change-Id: Iecfe11ded743715ea2eabad4a3fddbc1b04b5005 (cherry picked from commit 51b550aa2f6049a71261e2a5a76ae8a1450cd96b) Conflicts: media/libstagefright/ACodec.cpp libstagefright: Enable suspension policy -ADSP did not enter suspend state after audio playback. -No support for suspension policy in stagefright. -Enable suspension policy for the OMX component to take care of the power collapse in stagefright. -Merged the three gingerbread changes 50118, 62031 and 89989 for this Change-Id: I92f545d2684dddb9ef398c93b8c941a6c842a9f9 Conflicts: media/libstagefright/OMXCodec.cpp libstagefright: Encoder state check before calling OMX_FreeBuffer - Add state check based on OMX IL specification before calling OMX_FreeBuffer. CRs-Fixed: 337484 (cherry picked from commit d652e076b06bc6eb1a654e83e5229ffb09320668) Change-Id: Ic958682fa792aa144774d71f34a182a00cb10efd libstagefright: Fix for playback error during multiple play and pause - When H/W decoder is used, in pause state empty this buffer is not called from drainInputBuffer which blocks sending input buffers to the omx component. - When all the input buffers are processed by the omx component, it keeps waiting for the new input buffers after resume. - As the input buffers are not sent after resume, omx component do not sent output since it does not have any input buffers to decode. This is resulting in timeout on the output port. - Modified IL client to fill all the empty input buffers at omx start in case of H/W decoder. CRs-Fixed: 340761 (cherry picked from commit 1ecd319917b0197c23fc53968065aac9380bad6b) Change-Id: I530a4a91d91c01dd98fe6b818fe458dedb2ac9e0 libstagefright: Release output buffer when file limit is reached in recording There is a memory leak in video recording when the file size or duration limits are reached. The output buffer copy is not released before exiting the track thread in the mpeg4 writer. To avoid the memory leak, the buffer copy is released when a limit condition is detected in the mpeg4 writer. Change-Id: Idfde2083fdd9997b3025c7c12e00f3ae4665b8da CRs-Fixed: 315255
* Merge "Fix a couple of nasty heap corruption bugs." into icsDanny Baumann2012-05-191-0/+14
|\
| * Fix a couple of nasty heap corruption bugs.Danny Baumann2012-05-041-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | - When replacing the buffer pointer with another one, the allocated length wasn't updated. As the TI encoder relies of those being matched up (it e.g. does a memset(pBuffer, 0, nAllocLen) at certain places), this could lead to random memory being overwritten (or to a segfault when reaching the end of the mapping) - When replacing the buffer, the old buffer wasn't saved and restored before calling freeBuffer. This led to a different address passed to free() than was returned by malloc(), could lead to all kinds of weird, undefined behaviour.
* | libstagefright: Unbreak live effectsRicardo Cerqueira2012-05-182-1/+18
| | | | | | | | | | | | | | | | | | | | Change I1e31f2db521834a068e11d48e88547044b0c906f broke live effects for (probably all) non-Samsung msm8660 devices. Use platform-based logic to choose the correct memory pool (SMI for 8660 and MM for everyone else), and add a build-time switch for devices that always want MM regardless of platform (BOARD_CAMERA_USE_MM_HEAP) Change-Id: I103946c40548f319bb1446f75a6a539aa3eb51b8
* | stagefright: Fix camcorder effects on MSM8660.Steve Kondik2012-05-171-0/+7
| | | | | | | | | | | | | | | | | | * Patch adapted from https://www.codeaurora.org/gitweb/quic/la/?p=platform/frameworks/base.git;a=commit;h=a686ca15dc27aeeeffa3a0039c2c546af7f6272f * We need to use buffers from the MM heap on the 8660 devices I am testing. Change-Id: I1e31f2db521834a068e11d48e88547044b0c906f
* | libstagefright: Remove assert failure for kKeyHfrHaynes Mathew George2012-05-162-2/+7
| | | | | | | | | | | | | | | | | | - Remove assert failure if kKeyHfr is not present in meta data. - Assume normal mode recording if kKeyHfr is absent Change-Id: I17e29c943cc8886df9e8976487c05aabc54c3129 (cherry picked from commit 9fb63299bf27bd30f8a0fab5b9c2777e4342f154)
* | Allow theming of framework UI elements.Danny Baumann2012-05-131-3/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the theme engine works by replacing resources while loading the APK, framework UI couldn't be themed so far. Workaround that by manually creating a com.android.systemui package context and using that for showing the UI. This attempt is a bit hacky, but should be safe as a) systemui should always be present b) if it isn't, we fall back to no theming Change-Id: I644e2e8d7d4abf07bae639b606197d691f16adac Applying theming to more framework items. All dialogs and notifications should be covered now. Change-Id: If93f81991361165a00b5b1b03ffc323e3ab42c0b
* | Merge "Camera: sanity check for camcorder frame format parameter" into icsSteve Kondik2012-05-131-2/+6
|\ \
| * | Camera: sanity check for camcorder frame format parameterTanguy Pruvot2012-05-071-2/+6
| | | | | | | | | | | | Change-Id: Ieb9f40d32257178d202eaea1b71df25c0336ad8c
* | | Merge "media: stagefright: add msm8960 target support" into icsJef Oliver2012-05-091-0/+3
|\ \ \ | |/ / |/| |
| * | media: stagefright: add msm8960 target supportEthan Chen2012-05-021-0/+3
| |/ | | | | | | Change-Id: I3967381264342895692c9fb67a68c41f01c9776b
* | Merge branch 'themes-4.0' into 'ics'Ricardo Cerqueira2012-05-052-23/+78
|\ \ | | | | | | | | | Change-Id: Idc363f8140be2d252bee2aeba46c944032fb0ae9
| * \ Merge remote-tracking branch 'tmo/themes-2.3.1_r1' into themes-4.0Ricardo Cerqueira2012-05-042-23/+78
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Adapt to ICS API changes * Remove part of idmap due to conflicts * Restructure statusbar code * Fix issues with PowerWidget on phones to avoid the CM7 hackish restart of SystemUI * Add reinflation to properly redo status icons on tablets Conflicts: core/java/android/app/ActivityManager.java core/java/android/app/ActivityThread.java core/java/android/app/ContextImpl.java core/java/android/content/pm/ApplicationInfo.java core/java/android/content/pm/IPackageManager.aidl core/java/android/content/pm/PackageParser.java core/java/android/content/res/AssetManager.java core/java/android/content/res/CompatibilityInfo.java core/java/android/content/res/Configuration.java core/java/android/content/res/Resources.java core/java/com/android/internal/os/ZygoteInit.java core/jni/AndroidRuntime.cpp core/jni/android_util_AssetManager.cpp core/res/AndroidManifest.xml data/etc/platform.xml include/utils/AssetManager.h include/utils/ResourceTypes.h libs/utils/Android.mk libs/utils/AssetManager.cpp libs/utils/ResourceTypes.cpp media/java/android/media/RingtoneManager.java packages/SystemUI/res/layout/status_bar.xml packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java packages/SystemUI/src/com/android/systemui/statusbar/StatusBarView.java packages/SystemUI/src/com/android/systemui/statusbar/TrackingView.java policy/src/com/android/internal/policy/impl/PhoneWindowManager.java services/java/com/android/server/PackageManagerService.java services/java/com/android/server/SystemServer.java services/java/com/android/server/am/ActivityManagerService.java test-runner/src/android/test/mock/MockPackageManager.java Change-Id: Icabcd2c7b07dcbf174789b34f960360b87d7f27a
| | * Corrected whitespace trespasses.Josh Guilfoyle2011-02-042-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Many small whitespace mistakes slipped into the framework as the themes feature was developed. This patch reverts them to make a cleaner patch set against android-2.3.1_r1. Change-Id: I52223c1d572d4f013e37bebc5c11bb7b1c595eb3
| | * Merge commit 'android-2.3.1_r1' into themes-exp-2.3.1_r1Josh Guilfoyle2010-12-23848-23892/+173443
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: core/java/android/app/ActivityThread.java core/java/android/content/pm/ApplicationInfo.java core/java/android/content/pm/PackageParser.java core/res/AndroidManifest.xml services/java/com/android/server/PackageManagerService.java services/java/com/android/server/SystemServer.java test-runner/src/android/test/mock/MockPackageManager.java
| | * \ Merge commit 'android-2.2.1_r1' into themes-exp-2.2.1_r1Josh Guilfoyle2010-12-234-50/+145
| | |\ \
| | | * | Squashed commit of the following:Andreas Huber2010-08-173-48/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 4abf16bb04dc9695fedf4007a84f903074312ccd Author: Andreas Huber <andih@google.com> Date: Tue Jul 20 09:21:17 2010 -0700 Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we'll still play it back correctly. Change-Id: Icc790122744745e9a88099788d4818ca1e265a82 related-to-bug: 2826841 commit 09c74da63e6ad5cb5dafb70f62696d75d2978967 Author: James Dong <jdong@google.com> Date: Sun Jul 18 17:57:01 2010 -0700 Fix MPEG4Extractor to extract sampling frequency correctly when SBR is enabled. Change-Id: I883c81dad3ea465e71cb5590e89d763671a90ff8 commit f672bf2a782dc7d5fb6325d611a7fe17045dfe9a Author: James Dong <jdong@google.com> Date: Thu Jul 8 20:56:13 2010 -0700 Enable the support for decoding audio with AAC+ and eAAC+ features bug - 282684 Change-Id: I73c8377af3cc4edd3ee7cea86dc3b1c369fbd78b Change-Id: I012f1179e933b6d1345d2368f357576c722485f7
| | | * | Fix issue 2811538: System server crash when disconnecting BT headset after ↵Eric Laurent2010-07-011-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | using SCO off call. Problem: When the bluetooth device is removed, the AudioService clears all active SCO connections and unlinks from the client application's binder interface death. The problem is that the unlinking is done even if no more connections are active for a given client, which throws a runtime exception that is not catched causing the system server to crash. The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of active SCO connections for this client is not 0. The NoSuchElementException exception is also catched when calling unlinkToDeath() Change-Id: I7086424301fc63a5666da61c38169349d3e078f4
| | * | | Updated copyright headers.Josh Guilfoyle2010-11-182-0/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I4824be066a98194b4f7fa9a18682bf6701e069a6
| | * | | Reverted "buy ringtone" feature.Josh Guilfoyle2010-11-181-11/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: I4e1f20394d078d335be377ab1bf6558af4d87688
| | * | | Fixed column inconsistency for theme-based ringtones.Josh Guilfoyle2010-11-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Theme ringtones returned by the RingtoneManager must use the title column to guarantee column naming consistency with other ringtone sources. Without this it's possible that the RingtonePickerActivity will crash when trying to read the 'title' label column. Change-Id: I133fe7b0c14981d3c9c5422e0a70ed2ef7572a25
| | * | | Merge commit 'themes/themes-eclair' into themes-2.2_r1Dirk Sigurdson2010-07-042-29/+92
| | |\ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: api/current.xml core/java/android/app/ActivityManager.java core/java/android/app/ActivityThread.java core/java/android/app/ApplicationContext.java core/java/android/content/Intent.java core/java/android/content/pm/PackageInfo.java core/java/android/content/res/AssetManager.java core/java/android/content/res/Configuration.java core/jni/android_util_AssetManager.cpp media/java/android/media/Ringtone.java services/java/com/android/server/PackageManagerService.java services/java/com/android/server/am/ActivityManagerService.java test-runner/android/test/mock/MockPackageManager.java
| | | * | ESPRESSO-1021: Don't show default theme ringtones.Josh Guilfoyle2010-03-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These ringtones are a duplication of the actual system defaults which are provided elsewhere. CR: Dirk Sigurdson CR: Ed Carrigan
| | | * | ESPRESSO-1017: Fixed order of theme ringtones.Josh Guilfoyle2010-03-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | CR: Dirk Sigurdson CR: Ed Carrigan
| | | * | RingtoneManager: Removed unused importants.Josh Guilfoyle2010-03-171-1/+0
| | | | | | | | | | | | | | | | | | | | CR: javac
| | | * | ESPRESSO-663: Revert "Added RINGTONE_CHANGED broadcast"Josh Guilfoyle2010-02-181-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5257f6d28d678a171b04438ea9a9b629808350ed. Conflicts: media/java/android/media/RingtoneManager.java CR: Dirk Sigurdson CR: Ed Carrigan
| | | * | Merge remote branch 'korg/eclair' into themes-eclairDirk Sigurdson2010-02-0717-234/+307
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: core/java/android/app/ActivityThread.java core/java/android/content/pm/ActivityInfo.java core/java/android/content/res/AssetManager.java
| | | * | | ESPRESSO-182: Fixed theme ringtone from playing back during incoming call.Josh Guilfoyle2009-11-301-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This issue was two part: one, the check for the package resources provider authority was in the wrong place (needed to be in openAssetFile, not openFile). And two, the openAssetFile implementation was calling openFileDescriptor and wrapping, preventing actual asset fds from working properly. CR: Ed Carrigan
| | | * | | Fixed a merge mistake causing RingtoneManager#getCursor to throw an exception.Josh Guilfoyle2009-11-301-31/+24
| | | | | | | | | | | | | | | | | | | | | | | | CR: Ed Carrigan
| | | * | | Merge branch 'themes-1.5r2' into themes-eclairJosh Guilfoyle2009-11-242-29/+106
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: api/current.xml core/java/android/app/ActivityThread.java core/java/android/app/ApplicationContext.java core/java/android/app/Dialog.java core/java/android/app/SearchDialog.java core/java/android/content/Context.java core/java/android/content/Intent.java core/java/android/content/pm/PackageInfo.java core/java/android/content/pm/PackageParser.java core/java/android/content/res/Configuration.java core/java/android/content/res/Resources.java core/java/android/widget/RemoteViews.java core/java/android/widget/TabWidget.java core/java/com/android/internal/os/ZygoteInit.java core/jni/android_util_AssetManager.cpp core/res/AndroidManifest.xml core/res/res/layout/search_dropdown_item_2line.xml core/res/res/layout/select_dialog_item.xml core/res/res/layout/select_dialog_multichoice.xml core/res/res/layout/select_dialog_singlechoice.xml core/res/res/layout/tab_indicator.xml core/res/res/values/attrs.xml core/res/res/values/public.xml core/res/res/values/strings.xml core/res/res/values/themes.xml libs/utils/Android.mk libs/utils/AssetManager.cpp media/java/android/media/RingtoneManager.java services/java/com/android/server/PackageManagerService.java services/java/com/android/server/SystemServer.java services/java/com/android/server/am/ActivityManagerService.java services/java/com/android/server/status/StatusBarService.java tools/aapt/Main.cpp
| | | | * | | Reworked RingtoneManager support for theme ringtones.Josh Guilfoyle2009-11-102-63/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary as the ThemesProvider design has changed somewhat, specifically affecting the structure of uris. CR: Ed Carrigan