From 60ddf05ca2408ef9d1d041cc06426ae6eac93d92 Mon Sep 17 00:00:00 2001 From: Surajit Podder Date: Wed, 10 Dec 2014 14:55:52 +0530 Subject: 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 --- media/libstagefright/StagefrightMetadataRetriever.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp') 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 #include "include/StagefrightMetadataRetriever.h" +#include "include/HTTPBase.h" #include #include @@ -62,6 +63,12 @@ StagefrightMetadataRetriever::~StagefrightMetadataRetriever() { ALOGV("~StagefrightMetadataRetriever()"); clearMetadata(); mClient.disconnect(); + + if (mSource != NULL && + (mSource->flags() & DataSource::kIsHTTPBasedSource)) { + mExtractor.clear(); + static_cast(mSource.get())->disconnect(); + } } status_t StagefrightMetadataRetriever::setDataSource( -- cgit v1.1