summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/libstagefright/httplive/M3UParser.cpp31
-rw-r--r--media/libstagefright/httplive/M3UParser.h1
2 files changed, 10 insertions, 22 deletions
diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp
index 52791b92a0..9bdf8956b6 100644
--- a/media/libstagefright/httplive/M3UParser.cpp
+++ b/media/libstagefright/httplive/M3UParser.cpp
@@ -57,7 +57,7 @@ struct M3UParser::MediaGroup : public RefBase {
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 @@ private:
AString mURI;
AString mLanguage;
uint32_t mFlags;
- AString makeURL(const char *baseURL) const;
};
Type mType;
@@ -229,12 +228,12 @@ sp<AMessage> M3UParser::MediaGroup::getTrackInfo(size_t index) const {
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 @@ bool M3UParser::itemAt(size_t index, AString *uri, sp<AMessage> *meta) {
}
if (uri) {
- *uri = mItems.itemAt(index).makeURL(mBaseURI.c_str());
+ *uri = mItems.itemAt(index).mURI;
}
if (meta) {
@@ -429,7 +428,7 @@ bool M3UParser::getTypeURI(size_t index, const char *key, AString *uri) const {
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 @@ bool M3UParser::getTypeURI(size_t index, const char *key, AString *uri) const {
// 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 @@ static bool MakeURL(const char *baseURL, const char *url, AString *out) {
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 @@ status_t M3UParser::parse(const void *_data, size_t size) {
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 @@ status_t M3UParser::parseMedia(const AString &line) {
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 c85335abc2..fa648ed7d3 100644
--- a/media/libstagefright/httplive/M3UParser.h
+++ b/media/libstagefright/httplive/M3UParser.h
@@ -64,7 +64,6 @@ private:
struct Item {
AString mURI;
sp<AMessage> mMeta;
- AString makeURL(const char *baseURL) const;
};
status_t mInitCheck;