diff options
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/GenericSource.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/GenericSource.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp index ee0310e..c0355d7 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp +++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp @@ -485,10 +485,12 @@ void NuPlayer::GenericSource::finishPrepareAsync() { void NuPlayer::GenericSource::notifyPreparedAndCleanup(status_t err) { if (err != OK) { - Mutex::Autolock _l(mSourceLock); - mDataSource.clear(); - mCachedSource.clear(); - mHttpSource.clear(); + { + Mutex::Autolock _l(mSourceLock); + mDataSource.clear(); + mCachedSource.clear(); + mHttpSource.clear(); + } mBitrate = -1; cancelPollBuffering(); @@ -541,14 +543,13 @@ void NuPlayer::GenericSource::resume() { } void NuPlayer::GenericSource::disconnect() { - - sp<DataSource> dataSource; - sp<DataSource> httpSource; + sp<DataSource> dataSource, httpSource; { Mutex::Autolock _l(mSourceLock); dataSource = mDataSource; httpSource = mHttpSource; } + if (dataSource != NULL) { // disconnect data source if (dataSource->flags() & DataSource::kIsCachingDataSource) { |