[vlc-commits] demux: hls: preload SESSION-KEY
    Francois Cartegnie 
    git at videolan.org
       
    Fri May 10 11:13:31 CEST 2019
    
    
  
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Apr 23 16:46:10 2019 +0200| [540c383f00c24627c101df6dcb58492bf8846f59] | committer: Francois Cartegnie
demux: hls: preload SESSION-KEY
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=540c383f00c24627c101df6dcb58492bf8846f59
---
 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 18e372b1d4..3574fedf2e 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -432,12 +432,18 @@ 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;
 
+        /* Preload Session Key */
         Tag *sessionKey = getTagFromList(tagslist, AttributesTag::EXTXSESSIONKEY);
         if(sessionKey)
         {
             CommonEncryption sessionEncryption;
-            parseEncryption(static_cast<const AttributesTag *>(sessionKey),
-                            playlist->getUrlSegment(), sessionEncryption);
+            if(parseEncryption(static_cast<const AttributesTag *>(sessionKey),
+                                playlist->getUrlSegment(), sessionEncryption) &&
+               !sessionEncryption.uri.empty())
+            {
+                resources->getKeyring()->getKey(resources->getAuthStorage(),
+                                                sessionEncryption.uri);
+            }
         }
 
         /* We'll need to create an adaptation set for each media group / alternative rendering
    
    
More information about the vlc-commits
mailing list