[vlc-commits] demux: adaptive: declare codecs for MIME only ttml/webvtt

Francois Cartegnie git at videolan.org
Mon Mar 30 16:16:30 CEST 2020


vlc/vlc-3.0 | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Nov 21 14:28:31 2019 +0900| [38bcfd451be99812ba04189ea0e025eae2332111] | committer: Francois Cartegnie

demux: adaptive: declare codecs for MIME only ttml/webvtt

(cherry picked from commit 28f082add71568b9b56fd0f3febc97c34ac91186)

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

 modules/demux/adaptive/Streams.cpp | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/modules/demux/adaptive/Streams.cpp b/modules/demux/adaptive/Streams.cpp
index 1175a42405..1a67bef06e 100644
--- a/modules/demux/adaptive/Streams.cpp
+++ b/modules/demux/adaptive/Streams.cpp
@@ -671,11 +671,36 @@ void AbstractStream::trackerEvent(const SegmentTrackerEvent &event)
     }
 }
 
+static void add_codec_string_from_fourcc(vlc_fourcc_t fourcc,
+                                         std::list<std::string> &codecs)
+{
+    std::string codec;
+    codec.insert(0, reinterpret_cast<const char *>(&fourcc), 4);
+    codecs.push_back(codec);
+}
+
 void AbstractStream::declaredCodecs()
 {
     const std::string & streamDesc = segmentTracker->getStreamDescription();
     const std::string & streamLang = segmentTracker->getStreamLanguage();
     std::list<std::string> codecs =  segmentTracker->getCurrentCodecs();
+
+    if(codecs.empty())
+    {
+        const StreamFormat format = segmentTracker->getCurrentFormat();
+        switch(format)
+        {
+            case StreamFormat::TTML:
+                add_codec_string_from_fourcc(VLC_CODEC_TTML, codecs);
+                break;
+            case StreamFormat::WEBVTT:
+                add_codec_string_from_fourcc(VLC_CODEC_WEBVTT, codecs);
+                break;
+            default:
+                break;
+        }
+    }
+
     for(std::list<std::string>::const_iterator it = codecs.begin();
                                                it != codecs.end(); ++it)
     {



More information about the vlc-commits mailing list