[vlc-commits] demux: hls: handle broken EXTINF

Francois Cartegnie git at videolan.org
Tue May 21 15:47:17 CEST 2019


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue May 21 15:43:21 2019 +0200| [d97111e384bb3ea39fb3eda83c5a74d1ce7b20a3] | committer: Francois Cartegnie

demux: hls: handle broken EXTINF

ex: https://livestream.peer5.com/video/kite/index.m3u8

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

 modules/demux/hls/playlist/Tags.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/modules/demux/hls/playlist/Tags.cpp b/modules/demux/hls/playlist/Tags.cpp
index 5c63f0efbc..af67a8a994 100644
--- a/modules/demux/hls/playlist/Tags.cpp
+++ b/modules/demux/hls/playlist/Tags.cpp
@@ -277,9 +277,10 @@ ValuesListTag::~ValuesListTag()
 void ValuesListTag::parseAttributes(const std::string &field)
 {
     std::size_t pos = field.find(',');
+    Attribute *attr;
     if(pos != std::string::npos)
     {
-        Attribute *attr = new (std::nothrow) Attribute("DURATION", field.substr(0, pos));
+        attr = new (std::nothrow) Attribute("DURATION", field.substr(0, pos));
         if(attr)
             addAttribute(attr);
 
@@ -287,6 +288,12 @@ void ValuesListTag::parseAttributes(const std::string &field)
         if(attr)
             addAttribute(attr);
     }
+    else /* broken EXTINF without mandatory comma */
+    {
+        attr = new (std::nothrow) Attribute("DURATION", field);
+        if(attr)
+            addAttribute(attr);
+    }
 }
 
 Tag * TagFactory::createTagByName(const std::string &name, const std::string &value)



More information about the vlc-commits mailing list