diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-18 17:39:46 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-18 17:39:46 -0700 |
commit | 1179bc9b0e3d17c984e8f4ad38561c049dd102fa (patch) | |
tree | 1fd069efb58601650c80f77da0e2dc7d93641068 /media/libmedia | |
parent | c048cae0367db6fbb4fe1127be5011910713d4ad (diff) | |
download | frameworks_av-1179bc9b0e3d17c984e8f4ad38561c049dd102fa.zip frameworks_av-1179bc9b0e3d17c984e8f4ad38561c049dd102fa.tar.gz frameworks_av-1179bc9b0e3d17c984e8f4ad38561c049dd102fa.tar.bz2 |
auto import from //branches/cupcake_rel/...@140373
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 4 | ||||
-rw-r--r-- | media/libmedia/JetPlayer.cpp | 12 | ||||
-rw-r--r-- | media/libmedia/mediarecorder.cpp | 5 |
3 files changed, 15 insertions, 6 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index d26b0c5..7537ddf 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -387,12 +387,10 @@ void AudioTrack::flush() LOGV("flush"); if (!mActive) { - mCblk->lock.lock(); mAudioTrack->flush(); // Release AudioTrack callback thread in case it was waiting for new buffers // in AudioTrack::obtainBuffer() mCblk->cv.signal(); - mCblk->lock.unlock(); } } @@ -443,7 +441,7 @@ void AudioTrack::setSampleRate(int rate) if (rate > afSamplingRate*2) rate = afSamplingRate*2; if (rate > MAX_SAMPLE_RATE) rate = MAX_SAMPLE_RATE; - mCblk->sampleRate = rate; + mCblk->sampleRate = (uint16_t)rate; } uint32_t AudioTrack::getSampleRate() diff --git a/media/libmedia/JetPlayer.cpp b/media/libmedia/JetPlayer.cpp index 2c62104..77a9013 100644 --- a/media/libmedia/JetPlayer.cpp +++ b/media/libmedia/JetPlayer.cpp @@ -194,8 +194,15 @@ int JetPlayer::render() { } while (1) { + mMutex.lock(); // [[[[[[[[ LOCK --------------------------------------- + if (mEasData == NULL) { + mMutex.unlock(); + LOGV("JetPlayer::render(): NULL EAS data, exiting render."); + goto threadExit; + } + // nothing to render, wait for client thread to wake us up while (!mRender) { @@ -255,7 +262,10 @@ int JetPlayer::render() { }//while (1) threadExit: - mAudioTrack->flush(); + if (mAudioTrack) { + mAudioTrack->stop(); + mAudioTrack->flush(); + } if (mAudioBuffer) { delete [] mAudioBuffer; mAudioBuffer = NULL; diff --git a/media/libmedia/mediarecorder.cpp b/media/libmedia/mediarecorder.cpp index 23b3b9d..6b26faf 100644 --- a/media/libmedia/mediarecorder.cpp +++ b/media/libmedia/mediarecorder.cpp @@ -367,8 +367,9 @@ status_t MediaRecorder::setParameters(const String8& params) { status_t ret = mMediaRecorder->setParameters(params); if (OK != ret) { LOGE("setParameters(%s) failed: %d", params.string(), ret); - mCurrentState = MEDIA_RECORDER_ERROR; - return ret; + // Do not change our current state to MEDIA_RECORDER_ERROR, failures + // of the only currently supported parameters, "max-duration" and + // "max-filesize" are _not_ fatal. } return ret; |