summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/DataSource.cpp
diff options
context:
space:
mode:
authorRobert Shih <robertshih@google.com>2014-09-29 14:42:35 -0700
committerRobert Shih <robertshih@google.com>2014-10-01 10:58:30 -0700
commit360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee (patch)
tree1373f20ae467045842a9d206729ace2700f52bd0 /media/libstagefright/DataSource.cpp
parent992626cfe4852f1a2b46ea226b19c2eaa5dcfb89 (diff)
downloadframeworks_av-360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee.zip
frameworks_av-360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee.tar.gz
frameworks_av-360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee.tar.bz2
GenericSource: support disconnect before NuCachedSource2 is created
Bug: 17672488 Change-Id: I96776c9679fdcfbe9a442c86447c59802b1465ac
Diffstat (limited to 'media/libstagefright/DataSource.cpp')
-rw-r--r--media/libstagefright/DataSource.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/media/libstagefright/DataSource.cpp b/media/libstagefright/DataSource.cpp
index a72cbd5..c99db84 100644
--- a/media/libstagefright/DataSource.cpp
+++ b/media/libstagefright/DataSource.cpp
@@ -186,7 +186,8 @@ sp<DataSource> DataSource::CreateFromURI(
const sp<IMediaHTTPService> &httpService,
const char *uri,
const KeyedVector<String8, String8> *headers,
- String8 *contentType) {
+ String8 *contentType,
+ HTTPBase *httpSource) {
if (contentType != NULL) {
*contentType = "";
}
@@ -204,14 +205,15 @@ sp<DataSource> DataSource::CreateFromURI(
return NULL;
}
- sp<IMediaHTTPConnection> conn = httpService->makeHTTPConnection();
- if (conn == NULL) {
- ALOGE("Failed to make http connection from http service!");
- return NULL;
+ if (httpSource == NULL) {
+ sp<IMediaHTTPConnection> conn = httpService->makeHTTPConnection();
+ if (conn == NULL) {
+ ALOGE("Failed to make http connection from http service!");
+ return NULL;
+ }
+ httpSource = new MediaHTTP(conn);
}
- sp<HTTPBase> httpSource = new MediaHTTP(conn);
-
String8 tmp;
if (isWidevine) {
tmp = String8("http://");
@@ -264,6 +266,19 @@ sp<DataSource> DataSource::CreateFromURI(
return source;
}
+sp<DataSource> DataSource::CreateMediaHTTP(const sp<IMediaHTTPService> &httpService) {
+ if (httpService == NULL) {
+ return NULL;
+ }
+
+ sp<IMediaHTTPConnection> conn = httpService->makeHTTPConnection();
+ if (conn == NULL) {
+ return NULL;
+ } else {
+ return new MediaHTTP(conn);
+ }
+}
+
String8 DataSource::getMIMEType() const {
return String8("application/octet-stream");
}