summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/StagefrightMetadataRetriever.cpp
diff options
context:
space:
mode:
authorSurajit Podder <spodder@codeaurora.org>2014-12-10 14:55:52 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:06 -0600
commit60ddf05ca2408ef9d1d041cc06426ae6eac93d92 (patch)
tree66d2b8d3d0db73ac14f70268abd5cef96232096b /media/libstagefright/StagefrightMetadataRetriever.cpp
parentef3c3e487f79571037226c3d769455a9916f9a80 (diff)
downloadframeworks_av-60ddf05ca2408ef9d1d041cc06426ae6eac93d92.zip
frameworks_av-60ddf05ca2408ef9d1d041cc06426ae6eac93d92.tar.gz
frameworks_av-60ddf05ca2408ef9d1d041cc06426ae6eac93d92.tar.bz2
libstagefright: Explicitly disconnect HTTP connection
The HTTP connection created by StagefrightMetadataRetriever is not closed explicitly, and tcp activity continues even after metadata retriever is destroyed Explicitly disconnect HTTP connection in StagefrightMetadataRetriever Change-Id: I261d369e8dcff1bc0a3c7225243e865858b4fc7c CRs-Fixed: 754684
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(