diff options
-rw-r--r-- | include/media/AudioTrack.h | 2 | ||||
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 15 |
2 files changed, 6 insertions, 11 deletions
diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h index 26a25b0..4488ce4 100644 --- a/include/media/AudioTrack.h +++ b/include/media/AudioTrack.h @@ -473,7 +473,7 @@ protected: friend class AudioTrack; virtual bool threadLoop(); AudioTrack& mReceiver; - ~AudioTrackThread(); + virtual ~AudioTrackThread(); Mutex mMyLock; // Thread::mLock is private Condition mMyCond; // Thread::mThreadExitedCondition is private bool mPaused; // whether thread is currently paused diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 73d396e..0ca035f 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -278,11 +278,6 @@ status_t AudioTrack::set( mFlags = flags; mCbf = cbf; - if (cbf != NULL) { - mAudioTrackThread = new AudioTrackThread(*this, threadCanCallJava); - mAudioTrackThread->run("AudioTrack", ANDROID_PRIORITY_AUDIO, 0 /*stack*/); - } - // create the IAudioTrack status_t status = createTrack_l(streamType, sampleRate, @@ -292,15 +287,15 @@ status_t AudioTrack::set( flags, sharedBuffer, output); - if (status != NO_ERROR) { - if (mAudioTrackThread != 0) { - mAudioTrackThread->requestExit(); - mAudioTrackThread.clear(); - } return status; } + if (cbf != NULL) { + mAudioTrackThread = new AudioTrackThread(*this, threadCanCallJava); + mAudioTrackThread->run("AudioTrack", ANDROID_PRIORITY_AUDIO); + } + mStatus = NO_ERROR; mStreamType = streamType; |