Merge cherrypicks of [4562103, 4560827, 4563998, 4563999, 4564000, 4564001, 4564351, 4564352, 4564333, 4564033, 4560455, 4564034, 4560674, 4560675, 4563620, 4561607, 4561062, 4561063] into pi-release
Change-Id: I05ac67d96b8d82db43c7b94578ac3bbf6830525c
diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp
index 52791b9..9bdf895 100644
--- a/media/libstagefright/httplive/M3UParser.cpp
+++ b/media/libstagefright/httplive/M3UParser.cpp
@@ -57,7 +57,7 @@
const char *language,
uint32_t flags);
- bool getActiveURI(AString *uri, const char *baseURL) const;
+ bool getActiveURI(AString *uri) const;
void pickRandomMediaItems();
status_t selectTrack(size_t index, bool select);
@@ -76,7 +76,6 @@
AString mURI;
AString mLanguage;
uint32_t mFlags;
- AString makeURL(const char *baseURL) const;
};
Type mType;
@@ -229,12 +228,12 @@
return format;
}
-bool M3UParser::MediaGroup::getActiveURI(AString *uri, const char *baseURL) const {
+bool M3UParser::MediaGroup::getActiveURI(AString *uri) const {
for (size_t i = 0; i < mMediaItems.size(); ++i) {
if (mSelectedIndex >= 0 && i == (size_t)mSelectedIndex) {
const Media &item = mMediaItems.itemAt(i);
- *uri = item.makeURL(baseURL);
+ *uri = item.mURI;
return true;
}
}
@@ -323,7 +322,7 @@
}
if (uri) {
- *uri = mItems.itemAt(index).makeURL(mBaseURI.c_str());
+ *uri = mItems.itemAt(index).mURI;
}
if (meta) {
@@ -429,7 +428,7 @@
AString groupID;
if (!meta->findString(key, &groupID)) {
if (uri != NULL) {
- *uri = mItems.itemAt(index).makeURL(mBaseURI.c_str());
+ *uri = mItems.itemAt(index).mURI;
}
AString codecs;
@@ -460,7 +459,7 @@
// don't care about the active URI (or if there is an active one)
if (uri != NULL) {
sp<MediaGroup> group = mMediaGroups.valueFor(groupID);
- if (!group->getActiveURI(uri, mBaseURI.c_str())) {
+ if (!group->getActiveURI(uri)) {
return false;
}
@@ -549,18 +548,6 @@
return true;
}
-AString M3UParser::Item::makeURL(const char *baseURL) const {
- AString out;
- CHECK(MakeURL(baseURL, mURI.c_str(), &out));
- return out;
-}
-
-AString M3UParser::MediaGroup::Media::makeURL(const char *baseURL) const {
- AString out;
- CHECK(MakeURL(baseURL, mURI.c_str(), &out));
- return out;
-}
-
status_t M3UParser::parse(const void *_data, size_t size) {
int32_t lineNo = 0;
@@ -691,7 +678,7 @@
mItems.push();
Item *item = &mItems.editItemAt(mItems.size() - 1);
- item->mURI = line;
+ CHECK(MakeURL(mBaseURI.c_str(), line.c_str(), &item->mURI));
item->mMeta = itemMeta;
@@ -1203,7 +1190,9 @@
AString tmp(val, 1, val.size() - 2);
- groupURI = tmp;
+ if (!MakeURL(mBaseURI.c_str(), tmp.c_str(), &groupURI)) {
+ ALOGI("Failed to make absolute URI from '%s'.", tmp.c_str());
+ }
haveGroupURI = true;
}
diff --git a/media/libstagefright/httplive/M3UParser.h b/media/libstagefright/httplive/M3UParser.h
index c85335a..fa648ed 100644
--- a/media/libstagefright/httplive/M3UParser.h
+++ b/media/libstagefright/httplive/M3UParser.h
@@ -64,7 +64,6 @@
struct Item {
AString mURI;
sp<AMessage> mMeta;
- AString makeURL(const char *baseURL) const;
};
status_t mInitCheck;