diff options
author | Chong Zhang <chz@google.com> | 2014-08-13 15:26:49 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-08-14 10:16:18 -0700 |
commit | 7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046 (patch) | |
tree | 02e4113e3b2b734a7838d267d3e726f043fa7927 /media | |
parent | e6e18e8de729316b3fac7733f9ebc7f1b3feba95 (diff) | |
download | frameworks_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')
-rw-r--r-- | media/libstagefright/DataSource.cpp | 26 |
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( - ©, &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 |