summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/httplive/M3UParser.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-12-02 13:27:47 -0800
committerAndreas Huber <andih@google.com>2010-12-02 13:27:47 -0800
commitdecd96988e495133e4a1728f612d4c9fdb4d218e (patch)
tree1fece451dee4cf28d4bde296218c74e918e7ff9e /media/libstagefright/httplive/M3UParser.cpp
parent14072e56ef34f6ea4b517d69c13b61ad5ec67337 (diff)
downloadframeworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.zip
frameworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.tar.gz
frameworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.tar.bz2
Squashed commit of the following:
commit de99ae4a523ff5ec40b47071f22fdde1a4b2a0bf Author: Andreas Huber <andih@google.com> Date: Thu Dec 2 13:18:40 2010 -0800 Scan for sync words to find H.264 frame/AAC frame boundaries if PES packets do not start with them. Change-Id: If2861982ecb3006fac806105dbfcd1d43c2a4205 commit be23791ff0d037aa7073589cdc8bfc362e1c281d Author: Andreas Huber <andih@google.com> Date: Thu Dec 2 13:12:39 2010 -0800 Properly expand relative key URLs and strip surrounding quotes in the M3UParser. Change-Id: I013a6d83a64f095d090e5c7730298bdac7d03ab4 commit 0f1d8f65effe0cc42a265dd91d8b91dce6534325 Author: Andreas Huber <andih@google.com> Date: Thu Dec 2 13:11:27 2010 -0800 Ugly hack that assumes that any http url containing "m3u8" refers to an httplive stream. Change-Id: I05d7bbc5dab0f9822558122b5b9dc2a109ed8518 commit 255f0d5cdb1072ecd66b47ee614bf574f1388e5a Author: Andreas Huber <andih@google.com> Date: Thu Dec 2 13:10:56 2010 -0800 Add one more mimetype "application/x-mpegurl" to identify httplive playlists. Change-Id: I63fd3b8c2539c9ee23c077df533157af78b10863 Change-Id: I135687383009dbe32d690c9ba8dea60159adc616
Diffstat (limited to 'media/libstagefright/httplive/M3UParser.cpp')
-rw-r--r--media/libstagefright/httplive/M3UParser.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp
index b166cc3..d4a29c0 100644
--- a/media/libstagefright/httplive/M3UParser.cpp
+++ b/media/libstagefright/httplive/M3UParser.cpp
@@ -162,7 +162,7 @@ status_t M3UParser::parse(const void *_data, size_t size) {
if (mIsVariantPlaylist) {
return ERROR_MALFORMED;
}
- err = parseCipherInfo(line, &itemMeta);
+ err = parseCipherInfo(line, &itemMeta, mBaseURI);
} else if (line.startsWith("#EXT-X-ENDLIST")) {
mIsComplete = true;
} else if (line.startsWith("#EXTINF")) {
@@ -298,7 +298,7 @@ status_t M3UParser::parseStreamInf(
// static
status_t M3UParser::parseCipherInfo(
- const AString &line, sp<AMessage> *meta) {
+ const AString &line, sp<AMessage> *meta, const AString &baseURI) {
ssize_t colonPos = line.find(":");
if (colonPos < 0) {
@@ -338,6 +338,24 @@ status_t M3UParser::parseCipherInfo(
*meta = new AMessage;
}
+ if (key == "uri") {
+ if (val.size() >= 2
+ && val.c_str()[0] == '"'
+ && val.c_str()[val.size() - 1] == '"') {
+ // Remove surrounding quotes.
+ AString tmp(val, 1, val.size() - 2);
+ val = tmp;
+ }
+
+ AString absURI;
+ if (MakeURL(baseURI.c_str(), val.c_str(), &absURI)) {
+ val = absURI;
+ } else {
+ LOGE("failed to make absolute url for '%s'.",
+ val.c_str());
+ }
+ }
+
key.insert(AString("cipher-"), 0);
(*meta)->setString(key.c_str(), val.c_str(), val.size());