Loading include/media/stagefright/DataSource.h +5 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ struct AMessage; struct AString; struct IMediaHTTPService; class String8; struct HTTPBase; class DataSource : public RefBase { public: Loading @@ -48,7 +49,10 @@ public: const sp<IMediaHTTPService> &httpService, const char *uri, const KeyedVector<String8, String8> *headers = NULL, String8 *contentType = NULL); String8 *contentType = NULL, HTTPBase *httpSource = NULL); static sp<DataSource> CreateMediaHTTP(const sp<IMediaHTTPService> &httpService); DataSource() {} Loading media/libmediaplayerservice/nuplayer/GenericSource.cpp +20 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include "../../libstagefright/include/DRMExtractor.h" #include "../../libstagefright/include/NuCachedSource2.h" #include "../../libstagefright/include/WVMExtractor.h" #include "../../libstagefright/include/HTTPBase.h" namespace android { Loading Loading @@ -64,6 +65,7 @@ void NuPlayer::GenericSource::resetDataSource() { mAudioTimeUs = 0; mVideoTimeUs = 0; mHTTPService.clear(); mHttpSource.clear(); mUri.clear(); mUriHeaders.clear(); mFd = -1; Loading Loading @@ -284,10 +286,23 @@ void NuPlayer::GenericSource::onPrepareAsync() { // delayed data source creation if (mDataSource == NULL) { if (!mUri.empty()) { mIsWidevine = !strncasecmp(mUri.c_str(), "widevine://", 11); const char* uri = mUri.c_str(); mIsWidevine = !strncasecmp(uri, "widevine://", 11); if (!strncasecmp("http://", uri, 7) || !strncasecmp("https://", uri, 8) || mIsWidevine) { mHttpSource = DataSource::CreateMediaHTTP(mHTTPService); if (mHttpSource == NULL) { ALOGE("Failed to create http source!"); notifyPreparedAndCleanup(UNKNOWN_ERROR); return; } } mDataSource = DataSource::CreateFromURI( mHTTPService, mUri.c_str(), &mUriHeaders, &mContentType); mHTTPService, uri, &mUriHeaders, &mContentType, static_cast<HTTPBase *>(mHttpSource.get())); } else { // set to false first, if the extractor // comes back as secure, set it to true then. Loading Loading @@ -360,6 +375,7 @@ void NuPlayer::GenericSource::notifyPreparedAndCleanup(status_t err) { mSniffedMIME = ""; mDataSource.clear(); mCachedSource.clear(); mHttpSource.clear(); cancelPollBuffering(); } Loading Loading @@ -479,6 +495,8 @@ void NuPlayer::GenericSource::disconnect() { if (mDataSource->flags() & DataSource::kIsCachingDataSource) { static_cast<NuCachedSource2 *>(mDataSource.get())->disconnect(); } } else if (mHttpSource != NULL) { static_cast<HTTPBase *>(mHttpSource.get())->disconnect(); } } Loading media/libmediaplayerservice/nuplayer/GenericSource.h +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ private: sp<DataSource> mDataSource; sp<NuCachedSource2> mCachedSource; sp<DataSource> mHttpSource; sp<WVMExtractor> mWVMExtractor; sp<MetaData> mFileMeta; DrmManagerClient *mDrmManagerClient; Loading media/libstagefright/DataSource.cpp +22 −7 Original line number Diff line number Diff line Loading @@ -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 = ""; } Loading @@ -204,13 +205,14 @@ sp<DataSource> DataSource::CreateFromURI( return NULL; } if (httpSource == NULL) { sp<IMediaHTTPConnection> conn = httpService->makeHTTPConnection(); if (conn == NULL) { ALOGE("Failed to make http connection from http service!"); return NULL; } sp<HTTPBase> httpSource = new MediaHTTP(conn); httpSource = new MediaHTTP(conn); } String8 tmp; if (isWidevine) { Loading Loading @@ -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"); } Loading Loading
include/media/stagefright/DataSource.h +5 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ struct AMessage; struct AString; struct IMediaHTTPService; class String8; struct HTTPBase; class DataSource : public RefBase { public: Loading @@ -48,7 +49,10 @@ public: const sp<IMediaHTTPService> &httpService, const char *uri, const KeyedVector<String8, String8> *headers = NULL, String8 *contentType = NULL); String8 *contentType = NULL, HTTPBase *httpSource = NULL); static sp<DataSource> CreateMediaHTTP(const sp<IMediaHTTPService> &httpService); DataSource() {} Loading
media/libmediaplayerservice/nuplayer/GenericSource.cpp +20 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include "../../libstagefright/include/DRMExtractor.h" #include "../../libstagefright/include/NuCachedSource2.h" #include "../../libstagefright/include/WVMExtractor.h" #include "../../libstagefright/include/HTTPBase.h" namespace android { Loading Loading @@ -64,6 +65,7 @@ void NuPlayer::GenericSource::resetDataSource() { mAudioTimeUs = 0; mVideoTimeUs = 0; mHTTPService.clear(); mHttpSource.clear(); mUri.clear(); mUriHeaders.clear(); mFd = -1; Loading Loading @@ -284,10 +286,23 @@ void NuPlayer::GenericSource::onPrepareAsync() { // delayed data source creation if (mDataSource == NULL) { if (!mUri.empty()) { mIsWidevine = !strncasecmp(mUri.c_str(), "widevine://", 11); const char* uri = mUri.c_str(); mIsWidevine = !strncasecmp(uri, "widevine://", 11); if (!strncasecmp("http://", uri, 7) || !strncasecmp("https://", uri, 8) || mIsWidevine) { mHttpSource = DataSource::CreateMediaHTTP(mHTTPService); if (mHttpSource == NULL) { ALOGE("Failed to create http source!"); notifyPreparedAndCleanup(UNKNOWN_ERROR); return; } } mDataSource = DataSource::CreateFromURI( mHTTPService, mUri.c_str(), &mUriHeaders, &mContentType); mHTTPService, uri, &mUriHeaders, &mContentType, static_cast<HTTPBase *>(mHttpSource.get())); } else { // set to false first, if the extractor // comes back as secure, set it to true then. Loading Loading @@ -360,6 +375,7 @@ void NuPlayer::GenericSource::notifyPreparedAndCleanup(status_t err) { mSniffedMIME = ""; mDataSource.clear(); mCachedSource.clear(); mHttpSource.clear(); cancelPollBuffering(); } Loading Loading @@ -479,6 +495,8 @@ void NuPlayer::GenericSource::disconnect() { if (mDataSource->flags() & DataSource::kIsCachingDataSource) { static_cast<NuCachedSource2 *>(mDataSource.get())->disconnect(); } } else if (mHttpSource != NULL) { static_cast<HTTPBase *>(mHttpSource.get())->disconnect(); } } Loading
media/libmediaplayerservice/nuplayer/GenericSource.h +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ private: sp<DataSource> mDataSource; sp<NuCachedSource2> mCachedSource; sp<DataSource> mHttpSource; sp<WVMExtractor> mWVMExtractor; sp<MetaData> mFileMeta; DrmManagerClient *mDrmManagerClient; Loading
media/libstagefright/DataSource.cpp +22 −7 Original line number Diff line number Diff line Loading @@ -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 = ""; } Loading @@ -204,13 +205,14 @@ sp<DataSource> DataSource::CreateFromURI( return NULL; } if (httpSource == NULL) { sp<IMediaHTTPConnection> conn = httpService->makeHTTPConnection(); if (conn == NULL) { ALOGE("Failed to make http connection from http service!"); return NULL; } sp<HTTPBase> httpSource = new MediaHTTP(conn); httpSource = new MediaHTTP(conn); } String8 tmp; if (isWidevine) { Loading Loading @@ -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"); } Loading