vlc | branch: master | Francois Cartegnie <[email protected]> | Fri Apr 19 
11:34:48 2019 +0200| [e8dab66b213034ccb28414b3bba7b3f2b4145f42] | committer: 
Francois Cartegnie

demux: hls: load session key

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

 modules/demux/hls/playlist/Parser.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/modules/demux/hls/playlist/Parser.cpp 
b/modules/demux/hls/playlist/Parser.cpp
index 941f8f30ba..18e372b1d4 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -68,6 +68,17 @@ static std::list<Tag *> getTagsFromList(std::list<Tag *> 
&list, int tag)
     return ret;
 }
 
+static Tag * getTagFromList(std::list<Tag *> &list, int tag)
+{
+    std::list<Tag *>::const_iterator it;
+    for(it = list.begin(); it != list.end(); ++it)
+    {
+        if( (*it)->getType() == tag )
+            return *it;
+    }
+    return NULL;
+}
+
 static void releaseTagsList(std::list<Tag *> &list)
 {
     std::list<Tag *>::const_iterator it;
@@ -421,6 +432,14 @@ M3U8 * M3U8Parser::parse(vlc_object_t *p_object, stream_t 
*p_stream, const std::
         std::list<Tag *>::const_iterator it;
         std::map<std::string, AttributesTag *> groupsmap;
 
+        Tag *sessionKey = getTagFromList(tagslist, 
AttributesTag::EXTXSESSIONKEY);
+        if(sessionKey)
+        {
+            CommonEncryption sessionEncryption;
+            parseEncryption(static_cast<const AttributesTag *>(sessionKey),
+                            playlist->getUrlSegment(), sessionEncryption);
+        }
+
         /* We'll need to create an adaptation set for each media group / 
alternative rendering
          * we create a list of playlist being and alternative/group */
         std::list<Tag *> mediainfotags = getTagsFromList(tagslist, 
AttributesTag::EXTXMEDIA);

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

Reply via email to