From 0c4d3ced0a20b5cef6c51410754b40d4254f596b Mon Sep 17 00:00:00 2001 From: Apurupa Pattapu Date: Tue, 7 Jul 2015 12:27:10 -0700 Subject: Stagefright: Extensions for HTTP progressive streaming. - Extend NuPlayer setDataSource for streaming - Create ExtendedCachedSource only for MediaPlayer streaming usecases by passing a flag to DataSource to use extended cache - Add extension for MediaHTTP Change-Id: Ic87c3744bf905eb8742863951b809e38d0a60339 --- media/libstagefright/DataSource.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'media/libstagefright/DataSource.cpp') diff --git a/media/libstagefright/DataSource.cpp b/media/libstagefright/DataSource.cpp index fdd6d96..85d0292 100644 --- a/media/libstagefright/DataSource.cpp +++ b/media/libstagefright/DataSource.cpp @@ -193,7 +193,8 @@ sp DataSource::CreateFromURI( const char *uri, const KeyedVector *headers, String8 *contentType, - HTTPBase *httpSource) { + HTTPBase *httpSource, + bool useExtendedCache) { if (contentType != NULL) { *contentType = ""; } @@ -217,7 +218,7 @@ sp DataSource::CreateFromURI( ALOGE("Failed to make http connection from http service!"); return NULL; } - httpSource = new MediaHTTP(conn); + httpSource = AVFactory::get()->createMediaHTTP(conn); } String8 tmp; @@ -249,10 +250,17 @@ sp DataSource::CreateFromURI( *contentType = httpSource->getMIMEType(); } - source = new NuCachedSource2( - httpSource, - cacheConfig.isEmpty() ? NULL : cacheConfig.string(), - disconnectAtHighwatermark); + if (useExtendedCache) { + source = AVFactory::get()->createCachedSource( + httpSource, + cacheConfig.isEmpty() ? NULL : cacheConfig.string(), + disconnectAtHighwatermark); + } else { + source = new NuCachedSource2( + httpSource, + cacheConfig.isEmpty() ? NULL : cacheConfig.string(), + disconnectAtHighwatermark); + } } else { // We do not want that prefetching, caching, datasource wrapper // in the widevine:// case. @@ -281,7 +289,7 @@ sp DataSource::CreateMediaHTTP(const sp &httpServ if (conn == NULL) { return NULL; } else { - return new MediaHTTP(conn); + return AVFactory::get()->createMediaHTTP(conn); } } -- cgit v1.1