summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-11-19 20:26:34 -0800
committerChong Zhang <chz@google.com>2014-11-19 20:28:10 -0800
commita6bf21f2a7cdd33c78464019dc1105ef01248b51 (patch)
treea7bc37ebdc3cdc0a840d1c23447ea8a56f8fb958 /media
parentf89f2ff4df0855eb56d95a02ab29d856e0ffa858 (diff)
downloadframeworks_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')
-rw-r--r--media/libmediaplayerservice/nuplayer/GenericSource.cpp8
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) {