diff options
author | Steve Kondik <steve@cyngn.com> | 2015-11-16 14:35:33 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-11-16 19:27:41 -0800 |
commit | 842f7df253913a11b6dbc705b83299c437edd4e3 (patch) | |
tree | 6cb7da0af2b2b7254d8e43c454cb881dfa15f206 /media/libmediaplayerservice/nuplayer/GenericSource.cpp | |
parent | 8ab5ff0b3709976cde09362e7444d78d0a981dd3 (diff) | |
parent | 60282213a1194ee8753ac53b97fc7f7e36373e17 (diff) | |
download | frameworks_av-842f7df253913a11b6dbc705b83299c437edd4e3.zip frameworks_av-842f7df253913a11b6dbc705b83299c437edd4e3.tar.gz frameworks_av-842f7df253913a11b6dbc705b83299c437edd4e3.tar.bz2 |
Merge branch 'LA.BF64.1.2.2_rb4.7' of git://codeaurora.org/platform/frameworks/av into cm-13.0
Change-Id: Ia41df61c3ccfeb809572b63a4b1a8ca6bd85dfb2
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/GenericSource.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/GenericSource.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp index 7be4d23..c0355d7 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp +++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp @@ -128,6 +128,7 @@ status_t NuPlayer::GenericSource::setDataSource( status_t NuPlayer::GenericSource::setDataSource(const sp<DataSource>& source) { resetDataSource(); + Mutex::Autolock _l(mSourceLock); mDataSource = source; return OK; } @@ -155,7 +156,12 @@ status_t NuPlayer::GenericSource::initFromDataSource() { return UNKNOWN_ERROR; } } else if (mIsStreaming) { - if (!mDataSource->sniff(&mimeType, &confidence, &dummy)) { + sp<DataSource> dataSource; + { + Mutex::Autolock _l(mSourceLock); + dataSource = mDataSource; + } + if (!dataSource->sniff(&mimeType, &confidence, &dummy)) { return UNKNOWN_ERROR; } isWidevineStreaming = !strcasecmp( @@ -175,7 +181,7 @@ status_t NuPlayer::GenericSource::initFromDataSource() { } else { extractor = MediaExtractor::Create(mDataSource, mimeType.isEmpty() ? NULL : mimeType.string(), - mIsStreaming ? 0 : AVNuUtils::get()->getUseSetBuffersFlag()); + mIsStreaming ? 0 : AVNuUtils::get()->getFlags()); } if (extractor == NULL) { @@ -380,6 +386,7 @@ void NuPlayer::GenericSource::onPrepareAsync() { } } + Mutex::Autolock _l(mSourceLock); mDataSource = DataSource::CreateFromURI( mHTTPService, uri, &mUriHeaders, &contentType, static_cast<HTTPBase *>(mHttpSource.get()), @@ -387,6 +394,7 @@ void NuPlayer::GenericSource::onPrepareAsync() { } else { mIsWidevine = false; + Mutex::Autolock _l(mSourceLock); mDataSource = new FileSource(mFd, mOffset, mLength); mFd = -1; } @@ -478,15 +486,10 @@ void NuPlayer::GenericSource::finishPrepareAsync() { void NuPlayer::GenericSource::notifyPreparedAndCleanup(status_t err) { if (err != OK) { { - sp<DataSource> dataSource = mDataSource; - sp<NuCachedSource2> cachedSource = mCachedSource; - sp<DataSource> httpSource = mHttpSource; - { - Mutex::Autolock _l(mDisconnectLock); - mDataSource.clear(); - mCachedSource.clear(); - mHttpSource.clear(); - } + Mutex::Autolock _l(mSourceLock); + mDataSource.clear(); + mCachedSource.clear(); + mHttpSource.clear(); } mBitrate = -1; @@ -542,7 +545,7 @@ void NuPlayer::GenericSource::resume() { void NuPlayer::GenericSource::disconnect() { sp<DataSource> dataSource, httpSource; { - Mutex::Autolock _l(mDisconnectLock); + Mutex::Autolock _l(mSourceLock); dataSource = mDataSource; httpSource = mHttpSource; } |