diff options
author | Glenn Kasten <gkasten@google.com> | 2013-09-20 09:20:45 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2013-09-20 12:22:29 -0700 |
commit | 5a6cd224d07c05b496b6aca050ce5ecf96f125af (patch) | |
tree | c5d2fe55f0080c9660d283d040616d9a9fb6decc /include/media/mediametadataretriever.h | |
parent | a3b97ad288e6808c54c6275eaac1bd53108d8f11 (diff) | |
download | frameworks_av-5a6cd224d07c05b496b6aca050ce5ecf96f125af.zip frameworks_av-5a6cd224d07c05b496b6aca050ce5ecf96f125af.tar.gz frameworks_av-5a6cd224d07c05b496b6aca050ce5ecf96f125af.tar.bz2 |
Fix slow AudioTrack and AudioRecord destruction
There were two causes for the slowness:
When thread was paused, it used nanosleep and sleep. These usually
run to completion (except for POSIX signal, which we avoid because it
is low-level). Instead, replace the nanosleep and sleep by condition
timed wait, as that can be made to return early by a condition signal.
Another advantage of condition timed wait is that a condition wait was
already being used at top of thread loop, so it is a simpler change.
The AudioRecord destructor was missing a proxy interrupt that was correct
in AudioTrack. This proxy interrupt is needed in case another thread
is blocked in proxy obtainBuffer.
Does not address the 1 second polling for NS_WHENEVER.
Bug: 10822765
Change-Id: Id665994551e87e4d7da9c7b015f424fd7a0b5560
Diffstat (limited to 'include/media/mediametadataretriever.h')
0 files changed, 0 insertions, 0 deletions