From 7b3cd1f33dcfc0b6034144cf48c0919cf7ca6046 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Wed, 13 Aug 2014 15:26:49 -0700 Subject: [PATCH] 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 --- media/libstagefright/DataSource.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/media/libstagefright/DataSource.cpp b/media/libstagefright/DataSource.cpp index 908cdcabdc..008da5a2fa 100644 --- a/media/libstagefright/DataSource.cpp +++ b/media/libstagefright/DataSource.cpp @@ -209,25 +209,29 @@ sp DataSource::CreateFromURI( uri = tmp.string(); } - if (httpSource->connect(uri, headers) != OK) { + String8 cacheConfig; + bool disconnectAtHighwatermark; + KeyedVector 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 copy = *headers; - NuCachedSource2::RemoveCacheSpecificHeaders( - ©, &cacheConfig, &disconnectAtHighwatermark); - } + String8 contentType = httpSource->getMIMEType(); sp 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 -- 2.11.0