Loading media/libstagefright/httplive/M3UParser.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,9 @@ static bool MakeURL(const char *baseURL, const char *url, AString *out) { // Base URL must be absolute return false; } if (!strncasecmp("data:", url, 5)) { return false; } const size_t schemeEnd = (strstr(baseURL, "//") - baseURL) + 2; CHECK(schemeEnd == 7 || schemeEnd == 8); Loading media/libstagefright/httplive/PlaylistFetcher.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <media/stagefright/foundation/ByteUtils.h> #include <media/stagefright/foundation/MediaKeys.h> #include <media/stagefright/foundation/avc_utils.h> #include <media/stagefright/DataURISource.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MetaDataUtils.h> Loading Loading @@ -347,6 +348,16 @@ status_t PlaylistFetcher::decryptBuffer( sp<ABuffer> key; if (index >= 0) { key = mAESKeyForURI.valueAt(index); } else if (keyURI.startsWith("data:")) { sp<DataSource> keySrc = DataURISource::Create(keyURI.c_str()); off64_t keyLen; if (keySrc == NULL || keySrc->getSize(&keyLen) != OK || keyLen < 0) { ALOGE("Malformed cipher key data uri."); return ERROR_MALFORMED; } key = new ABuffer(keyLen); keySrc->readAt(0, key->data(), keyLen); key->setRange(0, keyLen); } else { ssize_t err = mHTTPDownloader->fetchFile(keyURI.c_str(), &key); Loading Loading
media/libstagefright/httplive/M3UParser.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,9 @@ static bool MakeURL(const char *baseURL, const char *url, AString *out) { // Base URL must be absolute return false; } if (!strncasecmp("data:", url, 5)) { return false; } const size_t schemeEnd = (strstr(baseURL, "//") - baseURL) + 2; CHECK(schemeEnd == 7 || schemeEnd == 8); Loading
media/libstagefright/httplive/PlaylistFetcher.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <media/stagefright/foundation/ByteUtils.h> #include <media/stagefright/foundation/MediaKeys.h> #include <media/stagefright/foundation/avc_utils.h> #include <media/stagefright/DataURISource.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MetaDataUtils.h> Loading Loading @@ -347,6 +348,16 @@ status_t PlaylistFetcher::decryptBuffer( sp<ABuffer> key; if (index >= 0) { key = mAESKeyForURI.valueAt(index); } else if (keyURI.startsWith("data:")) { sp<DataSource> keySrc = DataURISource::Create(keyURI.c_str()); off64_t keyLen; if (keySrc == NULL || keySrc->getSize(&keyLen) != OK || keyLen < 0) { ALOGE("Malformed cipher key data uri."); return ERROR_MALFORMED; } key = new ABuffer(keyLen); keySrc->readAt(0, key->data(), keyLen); key->setRange(0, keyLen); } else { ssize_t err = mHTTPDownloader->fetchFile(keyURI.c_str(), &key); Loading