diff options
author | Andreas Huber <andih@google.com> | 2010-12-02 13:27:47 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-12-02 13:27:47 -0800 |
commit | decd96988e495133e4a1728f612d4c9fdb4d218e (patch) | |
tree | 1fece451dee4cf28d4bde296218c74e918e7ff9e /media/libstagefright/httplive | |
parent | 14072e56ef34f6ea4b517d69c13b61ad5ec67337 (diff) | |
download | frameworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.tar.gz frameworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.tar.bz2 frameworks_av-decd96988e495133e4a1728f612d4c9fdb4d218e.zip |
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')
-rw-r--r-- | media/libstagefright/httplive/LiveSource.cpp | 8 | ||||
-rw-r--r-- | media/libstagefright/httplive/M3UParser.cpp | 22 |
2 files changed, 20 insertions, 10 deletions
diff --git a/media/libstagefright/httplive/LiveSource.cpp b/media/libstagefright/httplive/LiveSource.cpp index 4b4c3d2c88..4451bd534f 100644 --- a/media/libstagefright/httplive/LiveSource.cpp +++ b/media/libstagefright/httplive/LiveSource.cpp @@ -359,14 +359,6 @@ bool LiveSource::setupCipher() { return false; } - if (keyURI.size() >= 2 - && keyURI.c_str()[0] == '"' - && keyURI.c_str()[keyURI.size() - 1] == '"') { - // Remove surrounding quotes. - AString tmp(keyURI, 1, keyURI.size() - 2); - keyURI = tmp; - } - ssize_t index = mAESKeyForURI.indexOfKey(keyURI); sp<ABuffer> key; diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp index b166cc3d98..d4a29c090b 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()); |