vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Oct  6 
00:21:24 2015 +0200| [9fce6fdc36bbf345c5ed04513326981acf4df747] | committer: 
Francois Cartegnie

demux: hls: handle key relative uri

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9fce6fdc36bbf345c5ed04513326981acf4df747
---

 modules/demux/hls/playlist/Parser.cpp |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/modules/demux/hls/playlist/Parser.cpp 
b/modules/demux/hls/playlist/Parser.cpp
index f9a272e..9f44cc9 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -266,8 +266,14 @@ void M3U8Parser::parseSegments(vlc_object_t *p_obj, 
Representation *rep, const s
                     encryption.method = SegmentEncryption::AES_128;
                     encryption.key.clear();
                     uint8_t *p_data;
-                    const uint64_t read = Retrieve::HTTP(p_obj, 
keytag->getAttributeByName("URI")->quotedString(),
-                                                         (void **) &p_data);
+
+                    Url 
keyurl(keytag->getAttributeByName("URI")->quotedString());
+                    if(!keyurl.hasScheme())
+                    {
+                        
keyurl.prepend(Helper::getDirectoryPath(rep->getPlaylistUrl().toString()).append("/"));
+                    }
+
+                    const uint64_t read = Retrieve::HTTP(p_obj, 
keyurl.toString(), (void **) &p_data);
                     if(p_data)
                     {
                         if(read == 16)

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to