vlc | branch: master | Francois Cartegnie <[email protected]> | Wed Sep 23 
21:02:45 2015 +0200| [b1f16e27a12b8ad137e895dd260eec9bbc56df4e] | committer: 
Francois Cartegnie

demux: adaptative: fix mp4 seek after streamdemux restart

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

 modules/demux/adaptative/plumbing/Demuxer.cpp      |    5 +++++
 modules/demux/adaptative/plumbing/StreamOutput.cpp |    4 ++++
 2 files changed, 9 insertions(+)

diff --git a/modules/demux/adaptative/plumbing/Demuxer.cpp 
b/modules/demux/adaptative/plumbing/Demuxer.cpp
index e006890..b6811c0 100644
--- a/modules/demux/adaptative/plumbing/Demuxer.cpp
+++ b/modules/demux/adaptative/plumbing/Demuxer.cpp
@@ -51,6 +51,11 @@ StreamDemux::StreamDemux(demux_t *p_realdemux_, const 
std::string &name_, es_out
     name = name_;
     p_realdemux = p_realdemux_;
 
+    if(name == "mp4")
+    {
+        b_startsfromzero = true;
+    }
+
     restart();
 
     if(!demuxstream)
diff --git a/modules/demux/adaptative/plumbing/StreamOutput.cpp 
b/modules/demux/adaptative/plumbing/StreamOutput.cpp
index 6a5a37c..a8f31f2 100644
--- a/modules/demux/adaptative/plumbing/StreamOutput.cpp
+++ b/modules/demux/adaptative/plumbing/StreamOutput.cpp
@@ -121,6 +121,10 @@ void BaseStreamOutput::setPosition(mtime_t nztime)
         restart();
         fakeesout->commandsqueue.Abort( true );
         fakeesout->recycleAll();
+        /* Check if we need to set an offset as the demuxer
+         * will start from zero from seek point */
+        if(demuxer->alwaysStartsFromZero())
+            fakeesout->setTimestampOffset(nztime);
     }
 
     es_out_Control(realdemux->out, ES_OUT_SET_NEXT_DISPLAY_TIME,

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

Reply via email to