]> git.sesse.net Git - vlc/commitdiff
demux: dash: handle MPEG2TS profiles
authorFrancois Cartegnie <fcvlcdev@free.fr>
Wed, 17 Dec 2014 15:50:49 +0000 (16:50 +0100)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 18 Dec 2014 21:38:09 +0000 (22:38 +0100)
modules/stream_filter/dash/Streams.cpp
modules/stream_filter/dash/Streams.hpp
modules/stream_filter/dash/mpd/MPDFactory.cpp

index b2340d8908ac56f4e4568d74e3825c4ae0945cde..766f75918063844e47413650c81db9aab08408bd 100644 (file)
@@ -77,6 +77,8 @@ Format Stream::mimeToFormat(const std::string &mime)
         std::string tail = mime.substr(pos + 1);
         if(tail == "mp4")
             format = Streams::MP4;
+        else if (tail == "mp2t")
+            format = Streams::MPEG2TS;
     }
     return format;
 }
@@ -89,6 +91,9 @@ void Stream::create(demux_t *demux, IAdaptationLogic *logic)
         case Streams::MP4:
             output = new MP4StreamOutput(demux);
             break;
+        case Streams::MPEG2TS:
+            output = new MPEG2TSStreamOutput(demux);
+            break;
         default:
             throw VLC_EBADVAR;
             break;
@@ -300,3 +305,11 @@ MP4StreamOutput::MP4StreamOutput(demux_t *demux) :
     if(!demuxstream)
         throw VLC_EGENERIC;
 }
+
+MPEG2TSStreamOutput::MPEG2TSStreamOutput(demux_t *demux) :
+    AbstractStreamOutput(demux)
+{
+    demuxstream = stream_DemuxNew(demux, "ts", fakeesout);
+    if(!demuxstream)
+        throw VLC_EGENERIC;
+}
index 8d125f001a9e4c2a4fa78df60efe182b3f6514e2..387ad97285bdaf3a8e05a86b53fb717b7c1385ef 100644 (file)
@@ -97,6 +97,13 @@ namespace dash
                 MP4StreamOutput(demux_t *);
                 virtual ~MP4StreamOutput(){}
         };
+
+        class MPEG2TSStreamOutput : public AbstractStreamOutput
+        {
+            public:
+                MPEG2TSStreamOutput(demux_t *);
+                virtual ~MPEG2TSStreamOutput(){}
+        };
     }
 }
 #endif // STREAMS_HPP
index ccd6273d6fd930bb9e9397d9dc9a3ef6fc912986..ba1e399812a64285d9160c350be52db5753887b8 100644 (file)
@@ -40,6 +40,7 @@ MPD* MPDFactory::create             (dash::xml::Node *root, stream_t *p_stream,
         case Profile::ISOOnDemand:
         case Profile::ISOMain:
         case Profile::ISOLive:
+        case Profile::MPEG2TSSimple:
             parser = new IsoffMainParser(root, p_stream);
         default:
             break;