| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
also needed on non-yamaha sound phones
BOARD_USE_YAMAHAPLAYER -> BOARD_USE_SAMSUNG_SEPARATEDSTREAM
Change-Id: I5326f4e561102df4d47152b560fe0185fa848ff5
|
|
|
|
| |
Change-Id: I653f9876b7fb83734abf3a0b9b9b5af1920b8112
|
|
|
|
|
| |
Enable with BOARD_USES_AUDIO_LEGACY, requires the use of the generic
legacy audio shim
|
|
|
|
|
|
| |
Replace null device address string by empty sting.
Change-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the A2DP headset is connected, there is a possible
race condition when the audio tracks are moved from
the mixer thread attached to the speaker output to the thread
attached to A2DP output.
As the request to clear the stream type to output mapping cache in
the client process is asynchronous, it is possible that the flag
indicating to the client audio track to re-create the IAudioTrack
on the new thread is processed before the cache is invalidated.
In this case, the track will be attached to the old thread and
music will continue playing over the device speaker instead of being
redirected to A2DP headset.
Change-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this change, CPU and memory usage for an audio effect were
registered and checked against the limit by audio policy manager
upon effect instantiation. Even if an effect was not enabled
it would prevent another effect to be created if the CPU load budget
was exceeded, which was too restrictive.
This change adds a method to register/unregister CPU load only when
an effect is enabled or disabled.
It also adds a mechanism to place all effects on the global output mix
in suspend state (disabled) when an effect is enabled on a specific session.
This will allow applications using session effects to have the priority
over others using global effects.
Also fixes some issues with suspend/restore mechanism:
- avoid taking actions when an effect is disconnected and was not enabled.
- do not remove a session from the suspended sessions list when corresponding
effect chain is destroyed.
Change-Id: I5225278aba1ae13d0d0997bfe26a0c9fb46b17d3
|
|
|
|
|
|
|
|
| |
Don't remove effects until the session they are in goes away or all
AudioEffects have been explicitly released. This allows the control
panel process to die without stopping the effects.
Change-Id: I4496e5df080230ca1af149dec95c1309ab8ea888
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Audio effect framework is extended to suport effects on
output and input audio path.
AudioFlinger: Support for audio effects and effect chains is
moved from PlaybackThread class to ThreadBase class so that
RecordThread can manage effects.
Effects of type pre processing are allowed on record thread
only. When a pre processing is enabled, the effect interface handle is
passed down to the input stream so that the audio HAL can call the
process function. The record thread loop calls the effect chain process
function that will only manage the effect state and commands and skip the
process function.
AudioRecord: The audio session is allocated before calling getInput() into
audio policy serice so that the session is known before the input theead is
created and pre processings can be created on the correct session.
AudioPolicyService: default pre processing for a given input source are
loaded from audio_effects.conf file.
When an input is created, corresponding effects are created and enabled.
Change-Id: Id17119e0979b4dcf189b5c7957fec30dc3478790
|
|
|
|
|
|
| |
The gettid system call is always available now.
Change-Id: Ib78b41781eda182dc8605daf456bbea7ff7c2dc0
|
|
|
|
|
| |
Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
|
| |
Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
|
| |
Change-Id: I9eb7e002d141936258050d4fa4f0ccd8202bfc54
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
|
|
| |
Add hidden AudioManager.getDevicesForStream and output device codes.
Change-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modified default volume control logic in AudioService:
1 IN_CALL volume if in video/audio chat
2 NOTIFICATION if notification is playing or was playing less than 5s ago.
3 MUSIC
Modified silent mode:
- now also affect MUSIC stream type
- entering silent mode when VOL- hard key is pressed once while selected
stream volume is already at 0 (except for VOICE_CALL stream).
- exiting silent mode when pressing VOL+ hard key while in silent mode
Play sound FX (audible selections, keyboard clicks) at a fixed volume.
Modified audio framework:
- isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger)
- iStreamActive() now specifies a time window during which the stream is considered
active after it actually stopped.
Change-Id: I7e5a0724099450b9fc90825224180ac97322785f
|
|
|
|
|
|
|
|
|
| |
Update the platform-independent audio policy manager to pass the
nature of the audio recording source to the audio policy client
interface through the AudioPolicyClientInterface::setParameters()
method.
Change-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf
|
|\
| |
| |
| | |
Change-Id: I21dd2321a4839d034d49092baccbf40986f17dae
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.
Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.
Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
|
|\ \
| |/
| |
| | |
AudioFlinger, AudioMixer AudioTrack modifications." into kraken
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modifications.
First drop of audio framework modifications for audio effects support.
- AudioTrack/AudioRecord:
Added support for auxiliary effects in AudioTrack
Added support for audio sessions
Fixed left right channel inversion in setVolume()
- IAudioFlinger:
Added interface methods for effect enumeraiton and instantiation
Added support for audio sessions.
- IAudioTrack:
Added method to attach auxiliary effect.
- AudioFlinger
Created new classes to control effect engines in effect library and manage effect connections to tracks or
output mix:
EffectModule: wrapper object controlling the effect engine implementation in the effect library. There
is one EffectModule per instance of an effect in a given audio session
EffectChain: group of effects associated to one audio session. There is one EffectChain per audio session.
EffectChain for session 0 is for output mix effects, other chains are attached to audio tracks
with same session ID. Each chain contains a variable number of EffectModules
EffectHandle: implements the IEffect interface. There is one EffectHandle object for each application
controlling (or using) an effect module. THe EffectModule maintians a list of EffectHandles.
Added support for effect modules and effect chains creation in PlaybackThread.
modified mixer thread loop to allow track volume control by effect modules and call effect processing.
-AudioMixer
Each track now specifies its output buffer used by mixer for accumulation
Modified mixer process functions to process tracks by groups of tracks with same buffer
Modified track process functions to support accumulation to auxiliary channel
Change-Id: I26d5f7c9e070a89bdd383e1a659f8b7ca150379c
|
|/
|
|
|
|
|
|
|
|
|
|
| |
bluetooth SCO.
The problem is that when an input stream is opened for record over bluetooth SCO, the kernel
mono audio device should be opened in RW mode to allow further use of this same device by an output stream
also routed to bluetooth SCO.
This does not happen because of a bug in AudioSystem::isBluetoothScoDevice() that does not return true
when the device is DEVICE_IN_BLUETOOTH_SCO_HEADSET (input device for blurtooth SCO).
Change-Id: I9100e972931d8142295c7d64ec06e31304407586
|
|
|
|
|
|
|
|
|
|
|
| |
- AudioPolicyManager: allow platform specific choice for opening a direct output.
Also fixed problems in direct output management.
- AudioFliinger: use shorter standby delay and track inactivity grace period for direct output
thread to free hardware resources as soon as possible.
- AudioSystem: do not use cached output selection in getOutput() when a direct output
can be selected.
Change-Id: If44b50d29237b8402ffd7a5ba1dc43c56f903e9b
|
|
|
|
|
|
|
|
| |
sholes
Add API to retrieve number of frames dropped by audio input kernel driver.
Submitted on behalf of Masaki Sato <masaki.sato@motorola.com>
|
|\
| |
| |
| |
| |
| |
| | |
Merge commit '8978547f254b6b6ba2e322794aa044803f3edc2a'
* commit '8978547f254b6b6ba2e322794aa044803f3edc2a':
Fix issue 2459650.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change fixes a problem where an unwanted tone is generated by audio policy manager when a MT call is answered.
This is because of a policy that replaces high visibility system sounds (ringtones, alarms...) by a beep when in call.
There is a transitory phase while the call is being answered where the phone state is changed to IN_CALL but the
ringtone is still playing. The audio policy manager then mutes the end of the ringtone and starts playing a beep
in replacement because the ringtone is categorized as high visibility.
The fix consists in changing the ringtone stream type from high visibility to low visibility. This is not a problem as
the only actual use case where a ringtone would be generated while in call is if another call is received.
But in this case, the phone system does not generate a ringtone but a call waiting tone instead.
It is therefore not required to handle a ringtone as a high visibiltiy tone that must be somehow signaled to the user
while in call.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added getRenderPosition() API to IAudioFlinger to retreive number of audio frames
written by AudioFlinger to audio HAL and by DSP to DAC.
Added getRenderPosition() API to AudioHardwareInterface to retreive number of audio frames
written by DSP to DAC.
Exposed AudioTrack::getPosition() to AudioSink() to make it available to media player.
Removed excessive log in AudioHardwareGeneric.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.
Modified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream
type is playing.
Chanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.
|
|/
|
|
|
|
|
|
|
|
|
| |
server process crash.
The problem is that after a media_server crash, the value of the A2DP output handle can change.
As this value is cached in AudioSystem for all client processes there can be a mismatch between the cached
and actual value after a media_server restart.
The fix consists in clearing the cached output handles and output to stream map values cached
in AudioSystem in AudioFlingerClient::binderDied() which is called when the media_server crashes.
|
|
|
|
|
|
|
| |
VOICE_CALL stream volume and down link audio volume.
Added setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.
Removed call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().
|
|
|
|
|
|
| |
listening to music.
Add the possibility to delay routing and volume commands in AudioPolicyClientInterface. The delay is not blocking for the caller.
|
|
|
|
|
|
|
| |
use pointers as handles to inputs and outputs.
Use integers instead of void* as input/output handles at IAudioFlinger and IAudioPolicyService interfaces.
AudioFlinger maintains an always increasing count of opened inputs or outputs as unique ID.
|
|
|
|
|
|
|
| |
Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fails first time: Invalid buffer size: minFrameCount 10240, frameCount 4800
The problem comes from the fact that AudioSystem::getOutputFrameCount() calls getOutput() to retrieve the active output (A2DP or Hardware) before calling get_audio_flinger(). If it is the first time AudioSystem::getOutputFrameCount() is called in a given process, getOutput() will return a wrong value because gA2dpEnabled has not yet been updated by get_audio_flinger().
The fix consists in calling get_audio_flinger() in getOutput() to be sure that gA2dpEnabled is valid when getOutput() reads it.
Original author: elaurent
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...
Automated import of CL 144097
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|