am 1ac56b60: Merge change Iac196e17 into eclair
Merge commit '1ac56b602aa6a1ac54c608e5a8b76f44638db23b' into eclair-mr2 * commit '1ac56b602aa6a1ac54c608e5a8b76f44638db23b': Fix issue 2292062: Audio freezes for three seconds when choosing ringtones with a headset connected and music playing.
This commit is contained in:
@@ -2277,10 +2277,8 @@ AudioFlinger::PlaybackThread::Track::~Track()
|
||||
LOGV("PlaybackThread::Track destructor");
|
||||
sp<ThreadBase> thread = mThread.promote();
|
||||
if (thread != 0) {
|
||||
thread->mLock.lock();
|
||||
Mutex::Autolock _l(thread->mLock);
|
||||
mState = TERMINATED;
|
||||
thread->mLock.unlock();
|
||||
AudioSystem::releaseOutput(thread->id());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2298,8 +2296,11 @@ void AudioFlinger::PlaybackThread::Track::destroy()
|
||||
{ // scope for mLock
|
||||
sp<ThreadBase> thread = mThread.promote();
|
||||
if (thread != 0) {
|
||||
if (!isOutputTrack() && (mState == ACTIVE || mState == RESUMING)) {
|
||||
AudioSystem::stopOutput(thread->id(), (AudioSystem::stream_type)mStreamType);
|
||||
if (!isOutputTrack()) {
|
||||
if (mState == ACTIVE || mState == RESUMING) {
|
||||
AudioSystem::stopOutput(thread->id(), (AudioSystem::stream_type)mStreamType);
|
||||
}
|
||||
AudioSystem::releaseOutput(thread->id());
|
||||
}
|
||||
Mutex::Autolock _l(thread->mLock);
|
||||
PlaybackThread *playbackThread = (PlaybackThread *)thread.get();
|
||||
|
||||
Reference in New Issue
Block a user