vlc | branch: master | Francois Cartegnie <[email protected]> | Wed May 15 
10:17:15 2019 +0200| [eac20702ebfb364c3c1ecec83d044bf1d804499e] | committer: 
Francois Cartegnie

demux: hls: parse Role

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

 modules/demux/hls/playlist/Parser.cpp | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/modules/demux/hls/playlist/Parser.cpp 
b/modules/demux/hls/playlist/Parser.cpp
index 9e990d9c3f..d1fdd8e478 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -502,10 +502,28 @@ M3U8 * M3U8Parser::parse(vlc_object_t *p_object, stream_t 
*p_stream, const std::
                 }
                 else altAdaptSet->setID(ID(set_id++));
 
+                if(pair.second->getAttributeByName("DEFAULT"))
+                {
+                    if(pair.second->getAttributeByName("DEFAULT")->value == 
"YES")
+                        altAdaptSet->setRole(Role(Role::MAIN));
+                    else
+                        altAdaptSet->setRole(Role(Role::ALTERNATE));
+                }
+
+                if(pair.second->getAttributeByName("AUTOSELECT"))
+                {
+                    if(pair.second->getAttributeByName("AUTOSELECT")->value == 
"NO" &&
+                       !pair.second->getAttributeByName("DEFAULT"))
+                        altAdaptSet->setRole(Role(Role::SUPPLEMENTARY));
+                }
+
                 /* Subtitles unsupported for now */
-                if(pair.second->getAttributeByName("TYPE")->value != "AUDIO" &&
-                   pair.second->getAttributeByName("TYPE")->value != "VIDEO" &&
-                   pair.second->getAttributeByName("TYPE")->value != 
"SUBTITLES" )
+                const Attribute *typeattr = 
pair.second->getAttributeByName("TYPE");
+                if(typeattr->value == "SUBTITLES")
+                {
+                    altAdaptSet->setRole(Role(Role::SUBTITLE));
+                }
+                else if(typeattr->value != "AUDIO" && typeattr->value != 
"VIDEO")
                 {
                     rep->streamFormat = 
StreamFormat(StreamFormat::UNSUPPORTED);
                 }

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

Reply via email to