[vlc-devel] [PATCH 04/12] dash: added byte count methods to chunk

Christopher at mailsrv.uni-klu.ac.at Christopher at mailsrv.uni-klu.ac.at
Tue Mar 13 15:18:17 CET 2012


From: Christopher Mueller <christopher.mueller at itec.aau.at>

---
 modules/stream_filter/dash/http/Chunk.cpp |   58 +++++++++++++++++++++--------
 modules/stream_filter/dash/http/Chunk.h   |   22 +++++++---
 2 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/modules/stream_filter/dash/http/Chunk.cpp b/modules/stream_filter/dash/http/Chunk.cpp
index 979e3f8..a871234 100644
--- a/modules/stream_filter/dash/http/Chunk.cpp
+++ b/modules/stream_filter/dash/http/Chunk.cpp
@@ -34,31 +34,33 @@ Chunk::Chunk        () :
        endByte      (0),
        hasByteRange (false),
        port         (0),
-       isHostname   (false)
+       isHostname   (false),
+       length       (0),
+       bytesRead    (0)
 {
 }
 
-int                 Chunk::getEndByte       () const
+int                 Chunk::getEndByte           () const
 {
     return endByte;
 }
-int                 Chunk::getStartByte     () const
+int                 Chunk::getStartByte         () const
 {
     return startByte;
 }
-const std::string&  Chunk::getUrl           () const
+const std::string&  Chunk::getUrl               () const
 {
     return url;
 }
-void                Chunk::setEndByte       (int endByte)
+void                Chunk::setEndByte           (int endByte)
 {
     this->endByte = endByte;
 }
-void                Chunk::setStartByte     (int startByte)
+void                Chunk::setStartByte         (int startByte)
 {
     this->startByte = startByte;
 }
-void                Chunk::setUrl           (const std::string& url )
+void                Chunk::setUrl               (const std::string& url )
 {
     this->url = url;
 
@@ -77,39 +79,63 @@ void                Chunk::setUrl           (const std::string& url )
     this->hostname      = url_components.psz_host;
     this->isHostname    = true;
 }
-void                Chunk::addOptionalUrl   (const std::string& url)
+void                Chunk::addOptionalUrl       (const std::string& url)
 {
     this->optionalUrls.push_back(url);
 }
-bool                Chunk::useByteRange     ()
+bool                Chunk::useByteRange         ()
 {
     return this->hasByteRange;
 }
-void                Chunk::setUseByteRange  (bool value)
+void                Chunk::setUseByteRange      (bool value)
 {
     this->hasByteRange = value;
 }
-void                Chunk::setBitrate       (uint64_t bitrate)
+void                Chunk::setBitrate           (uint64_t bitrate)
 {
     this->bitrate = bitrate;
 }
-int                 Chunk::getBitrate       ()
+int                 Chunk::getBitrate           ()
 {
     return this->bitrate;
 }
-bool                Chunk::hasHostname     () const
+bool                Chunk::hasHostname          () const
 {
     return this->isHostname;
 }
-const std::string&  Chunk::getHostname     () const
+const std::string&  Chunk::getHostname          () const
 {
     return this->hostname;
 }
-const std::string&  Chunk::getPath         () const
+const std::string&  Chunk::getPath              () const
 {
     return this->path;
 }
-int                 Chunk::getPort         () const
+int                 Chunk::getPort              () const
 {
     return this->port;
 }
+uint64_t            Chunk::getLength            () const
+{
+    return this->length;
+}
+void                Chunk::setLength            (uint64_t length)
+{
+    this->length = length;
+}
+uint64_t            Chunk::getBytesRead         () const
+{
+    return this->bytesRead;
+}
+void                Chunk::setBytesRead         (uint64_t bytes)
+{
+    this->bytesRead = bytes;
+}
+uint64_t            Chunk::getBytesToRead       () const
+{
+    return this->length - this->bytesRead;
+}
+size_t              Chunk::getPercentDownloaded () const
+{
+    return (size_t)(((float)this->bytesRead / this->length) * 100);
+}
diff --git a/modules/stream_filter/dash/http/Chunk.h b/modules/stream_filter/dash/http/Chunk.h
index a4b41f1..4deec4b 100644
--- a/modules/stream_filter/dash/http/Chunk.h
+++ b/modules/stream_filter/dash/http/Chunk.h
@@ -44,14 +44,20 @@ namespace dash
             public:
                 Chunk           ();
 
-                int                 getEndByte      () const;
-                int                 getStartByte    () const;
-                const std::string&  getUrl          () const;
-                bool                hasHostname     () const;
-                const std::string&  getHostname     () const;
-                const std::string&  getPath         () const;
-                int                 getPort         () const;
+                int                 getEndByte              () const;
+                int                 getStartByte            () const;
+                const std::string&  getUrl                  () const;
+                bool                hasHostname             () const;
+                const std::string&  getHostname             () const;
+                const std::string&  getPath                 () const;
+                int                 getPort                 () const;
+                uint64_t            getLength               () const;
+                uint64_t            getBytesRead            () const;
+                uint64_t            getBytesToRead          () const;
+                size_t              getPercentDownloaded    () const;
 
+                void                setBytesRead    (uint64_t bytes);
+                void                setLength       (uint64_t length);
                 void                setEndByte      (int endByte);
                 void                setStartByte    (int startByte);
                 void                setUrl          (const std::string& url);
@@ -72,6 +78,8 @@ namespace dash
                 int                         bitrate;
                 int                         port;
                 bool                        isHostname;
+                size_t                      length;
+                uint64_t                    bytesRead;
         };
     }
 }
-- 
1.7.0.4




More information about the vlc-devel mailing list