diff options
author | Chong Zhang <chz@google.com> | 2014-11-19 20:26:34 -0800 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-11-19 20:28:10 -0800 |
commit | a6bf21f2a7cdd33c78464019dc1105ef01248b51 (patch) | |
tree | a7bc37ebdc3cdc0a840d1c23447ea8a56f8fb958 /media/libmediaplayerservice | |
parent | f89f2ff4df0855eb56d95a02ab29d856e0ffa858 (diff) | |
download | frameworks_av-a6bf21f2a7cdd33c78464019dc1105ef01248b51.zip frameworks_av-a6bf21f2a7cdd33c78464019dc1105ef01248b51.tar.gz frameworks_av-a6bf21f2a7cdd33c78464019dc1105ef01248b51.tar.bz2 |
close fd if data source is reset without prepare
bug: 18434887
Change-Id: I70dff721710b7299d1ca1f8520278f82d355141d
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/GenericSource.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp index d446cec..eb10dda 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp +++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp @@ -56,6 +56,7 @@ NuPlayer::GenericSource::GenericSource( mIsWidevine(false), mUIDValid(uidValid), mUID(uid), + mFd(-1), mDrmManagerClient(NULL), mMetaDataSize(-1ll), mBitrate(-1ll), @@ -70,7 +71,10 @@ void NuPlayer::GenericSource::resetDataSource() { mHttpSource.clear(); mUri.clear(); mUriHeaders.clear(); - mFd = -1; + if (mFd >= 0) { + close(mFd); + mFd = -1; + } mOffset = 0; mLength = 0; setDrmPlaybackStatusIfNeeded(Playback::STOP, 0); @@ -270,6 +274,7 @@ NuPlayer::GenericSource::~GenericSource() { mLooper->unregisterHandler(id()); mLooper->stop(); } + resetDataSource(); } void NuPlayer::GenericSource::prepareAsync() { @@ -312,6 +317,7 @@ void NuPlayer::GenericSource::onPrepareAsync() { mIsWidevine = false; mDataSource = new FileSource(mFd, mOffset, mLength); + mFd = -1; } if (mDataSource == NULL) { |