summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-11-20 18:41:46 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-11-20 18:41:47 +0000
commitec9459c63d1c2969505ffdc4a100646fd07223bd (patch)
tree143cd8e8d5a9d2c973e37833e4836632215f7ee9 /media
parenta7cf01da547bad8d4e66e3e4570eddeac98b6b05 (diff)
parenta6bf21f2a7cdd33c78464019dc1105ef01248b51 (diff)
downloadframeworks_av-ec9459c63d1c2969505ffdc4a100646fd07223bd.zip
frameworks_av-ec9459c63d1c2969505ffdc4a100646fd07223bd.tar.gz
frameworks_av-ec9459c63d1c2969505ffdc4a100646fd07223bd.tar.bz2
Merge "close fd if data source is reset without prepare" into lmp-mr1-dev
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 e619926..e7a26b6 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) {