]> git.sesse.net Git - vlc/commitdiff
stream_filter: dash: simplify getting duration
authorFrancois Cartegnie <fcvlcdev@free.fr>
Tue, 18 Nov 2014 22:31:54 +0000 (23:31 +0100)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 18 Dec 2014 20:23:49 +0000 (21:23 +0100)
modules/stream_filter/dash/DASHManager.cpp
modules/stream_filter/dash/DASHManager.h
modules/stream_filter/dash/dash.cpp

index 29012194c2f3baa56125a2c94d9f81cf11f04d2a..58faa2fdf344a50b32022474c4338d1b514296b9 100644 (file)
@@ -97,9 +97,20 @@ const mpd::MPDManager*         DASHManager::getMpdManager() const
     return this->mpdManager;
 }
 
-const logic::IAdaptationLogic*  DASHManager::getAdaptionLogic() const
+mtime_t DASHManager::getDuration() const
 {
-    return this->adaptationLogic;
+    if (mpd->isLive())
+    {
+        return 0;
+    }
+    else
+    {
+        const Representation *rep = adaptationLogic->getCurrentRepresentation();
+        if ( !rep )
+            return 0;
+        else
+            return mpd->getDuration() * rep->getBandwidth() / 8;
+    }
 }
 
 const Chunk *DASHManager::getCurrentChunk() const
index a48e6fdb3e39da1a4755021feeea73b3b0a112fd..8ab675681b9ccaf59dba3fa6f1109dfdca8a654f 100644 (file)
@@ -50,7 +50,7 @@ namespace dash
             int     seekBackwards ( unsigned len );
 
             const mpd::MPDManager*         getMpdManager   () const;
-            const logic::IAdaptationLogic*  getAdaptionLogic() const;
+            mtime_t getDuration() const;
             const http::Chunk *getCurrentChunk() const;
 
         private:
index 4f3aac0d6c5dae4aaffeb9ed736b0ada56ffba88..88251c3baf9c86a122cf5f9757a865da574d62a3 100644 (file)
@@ -81,7 +81,6 @@ struct stream_sys_t
         dash::DASHManager   *p_dashManager;
         dash::mpd::MPD      *p_mpd;
         uint64_t                            position;
-        bool                                isLive;
 };
 
 static int  Read            (stream_t *p_stream, void *p_ptr, unsigned int i_len);
@@ -129,7 +128,6 @@ static int Open(vlc_object_t *p_obj)
     }
     p_sys->p_dashManager    = p_dashManager;
     p_sys->position         = 0;
-    p_sys->isLive           = p_dashManager->getMpdManager()->getMPD()->isLive();
     p_stream->p_sys         = p_sys;
     p_stream->pf_read       = Read;
     p_stream->pf_peek       = Peek;
@@ -276,16 +274,7 @@ static int  Control         (stream_t *p_stream, int i_query, va_list args)
         case STREAM_GET_SIZE:
         {
             uint64_t*   res = (va_arg (args, uint64_t *));
-            if(p_sys->isLive)
-                *res = 0;
-            else
-            {
-                const dash::mpd::Representation *rep = p_sys->p_dashManager->getAdaptionLogic()->getCurrentRepresentation();
-                if ( rep == NULL )
-                    *res = 0;
-                else
-                    *res = p_sys->p_mpd->getDuration() * rep->getBandwidth() / 8;
-            }
+            *res = p_sys->p_dashManager->getDuration();
             break;
         }
         case STREAM_GET_PTS_DELAY: