diff options
author | Surajit Podder <spodder@codeaurora.org> | 2014-12-10 14:55:52 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:24:06 -0600 |
commit | 60ddf05ca2408ef9d1d041cc06426ae6eac93d92 (patch) | |
tree | 66d2b8d3d0db73ac14f70268abd5cef96232096b /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | ef3c3e487f79571037226c3d769455a9916f9a80 (diff) | |
download | frameworks_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.cpp | 7 |
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( |