summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/DataSource.cpp
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-08-13 15:26:49 -0700
committerChong Zhang <chz@google.com>2014-08-14 10:16:18 -0700
commit7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046 (patch)
tree02e4113e3b2b734a7838d267d3e726f043fa7927 /media/libstagefright/DataSource.cpp
parente6e18e8de729316b3fac7733f9ebc7f1b3feba95 (diff)
downloadframeworks_av-7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046.zip
frameworks_av-7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046.tar.gz
frameworks_av-7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046.tar.bz2
make NuPlayer's http connection mechanism behave
more like that of AwesomePlayer's - remove cache specific headers before connect - read mime type before creating cached source on top of the http source Bug: 16892521 Change-Id: Ie13a62dd8dd959be6095a42e2b41e3bc817efeb5
Diffstat (limited to 'media/libstagefright/DataSource.cpp')
-rw-r--r--media/libstagefright/DataSource.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/media/libstagefright/DataSource.cpp b/media/libstagefright/DataSource.cpp
index 908cdca..008da5a 100644
--- a/media/libstagefright/DataSource.cpp
+++ b/media/libstagefright/DataSource.cpp
@@ -209,25 +209,29 @@ sp<DataSource> DataSource::CreateFromURI(
uri = tmp.string();
}
- if (httpSource->connect(uri, headers) != OK) {
+ String8 cacheConfig;
+ bool disconnectAtHighwatermark;
+ KeyedVector<String8, String8> nonCacheSpecificHeaders;
+ if (headers != NULL) {
+ nonCacheSpecificHeaders = *headers;
+ NuCachedSource2::RemoveCacheSpecificHeaders(
+ &nonCacheSpecificHeaders,
+ &cacheConfig,
+ &disconnectAtHighwatermark);
+ }
+
+ if (httpSource->connect(uri, &nonCacheSpecificHeaders) != OK) {
ALOGE("Failed to connect http source!");
return NULL;
}
if (!isWidevine) {
- String8 cacheConfig;
- bool disconnectAtHighwatermark;
- if (headers != NULL) {
- KeyedVector<String8, String8> copy = *headers;
- NuCachedSource2::RemoveCacheSpecificHeaders(
- &copy, &cacheConfig, &disconnectAtHighwatermark);
- }
+ String8 contentType = httpSource->getMIMEType();
sp<NuCachedSource2> cachedSource = new NuCachedSource2(
httpSource,
- cacheConfig.isEmpty() ? NULL : cacheConfig.string());
-
- String8 contentType = httpSource->getMIMEType();
+ cacheConfig.isEmpty() ? NULL : cacheConfig.string(),
+ disconnectAtHighwatermark);
if (strncasecmp(contentType.string(), "audio/", 6)) {
// We're not doing this for streams that appear to be audio-only