summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/StagefrightMetadataRetriever.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r--media/libstagefright/StagefrightMetadataRetriever.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index 7c554db..be28821 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -23,6 +23,7 @@
#include <gui/Surface.h>
#include "include/StagefrightMetadataRetriever.h"
+#include "include/HTTPBase.h"
#include <media/ICrypto.h>
#include <media/IMediaHTTPService.h>
@@ -62,6 +63,12 @@ StagefrightMetadataRetriever::~StagefrightMetadataRetriever() {
ALOGV("~StagefrightMetadataRetriever()");
clearMetadata();
mClient.disconnect();
+
+ if (mSource != NULL &&
+ (mSource->flags() & DataSource::kIsHTTPBasedSource)) {
+ mExtractor.clear();
+ static_cast<HTTPBase *>(mSource.get())->disconnect();
+ }
}
status_t StagefrightMetadataRetriever::setDataSource(