[vlc-commits] dash: Representation: Return a usable bandwith value.

Hugo Beauzée-Luyssen git at videolan.org
Fri Dec 2 00:24:12 CET 2011


vlc/vlc-1.2 | branch: master | Hugo Beauzée-Luyssen <beauze.h at gmail.com> | Wed Nov 30 18:25:58 2011 +0100| [a97ebe6e9ebe116bb65f9e9813adf6c8bef1392a] | committer: Jean-Baptiste Kempf

dash: Representation: Return a usable bandwith value.

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
(cherry picked from commit dce9c498c06e1c2bd4907dda58ebde3f6331814f)

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

 modules/stream_filter/dash/mpd/BasicCMManager.cpp |    4 ++--
 modules/stream_filter/dash/mpd/Representation.cpp |    8 +++++---
 modules/stream_filter/dash/mpd/Representation.h   |    7 ++++++-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/modules/stream_filter/dash/mpd/BasicCMManager.cpp b/modules/stream_filter/dash/mpd/BasicCMManager.cpp
index fd1fee1..4a488c6 100644
--- a/modules/stream_filter/dash/mpd/BasicCMManager.cpp
+++ b/modules/stream_filter/dash/mpd/BasicCMManager.cpp
@@ -80,7 +80,7 @@ Representation*         BasicCMManager::getBestRepresentation   (Period *period)
         {
             try
             {
-                long currentBitrate = atol(reps.at(j)->getBandwidth().c_str());
+                long currentBitrate = reps.at(j)->getBandwidth();
                 if(currentBitrate > bitrate)
                 {
                     bitrate = currentBitrate;
@@ -119,7 +119,7 @@ Representation*         BasicCMManager::getRepresentation       (Period *period,
         {
             try
             {
-                long currentBitrate = atol(reps.at(j)->getBandwidth().c_str());
+                long currentBitrate = reps.at(j)->getBandwidth();
                 long dif = bitrate - currentBitrate;
 
                 if(bestDif == -1)
diff --git a/modules/stream_filter/dash/mpd/Representation.cpp b/modules/stream_filter/dash/mpd/Representation.cpp
index 17fd248..0a8a4dc 100644
--- a/modules/stream_filter/dash/mpd/Representation.cpp
+++ b/modules/stream_filter/dash/mpd/Representation.cpp
@@ -25,6 +25,8 @@
 # include "config.h"
 #endif
 
+#include <cstdlib>
+
 #include "Representation.h"
 
 using namespace dash::mpd;
@@ -126,13 +128,13 @@ std::string         Representation::getWidth                () const throw(Attri
     return it->second;
 
 }
-std::string         Representation::getBandwidth            () const throw(AttributeNotPresentException)
+int     Representation::getBandwidth            () const
 {
     std::map<std::string, std::string>::const_iterator  it = this->attributes.find("bandwidth");
     if ( it == this->attributes.end())
-        throw AttributeNotPresentException();
+        return -1;
 
-    return it->second;
+    return atoi( it->second.c_str() ) / 8;
 
 }
 std::string         Representation::getNumberOfChannels     () const throw(AttributeNotPresentException)
diff --git a/modules/stream_filter/dash/mpd/Representation.h b/modules/stream_filter/dash/mpd/Representation.h
index 0a2668c..a47d867 100644
--- a/modules/stream_filter/dash/mpd/Representation.h
+++ b/modules/stream_filter/dash/mpd/Representation.h
@@ -52,7 +52,12 @@ namespace dash
                 std::string         getLang                 () const throw(dash::exception::AttributeNotPresentException);
                 std::string         getFrameRate            () const throw(dash::exception::AttributeNotPresentException);
                 std::string         getId                   () const throw(dash::exception::AttributeNotPresentException);
-                std::string         getBandwidth            () const throw(dash::exception::AttributeNotPresentException);
+                /*
+                 *  @return The bitrate required for this representation
+                 *          in Bytes per seconds.
+                 *          -1 if an error occurs.
+                 */
+                int                 getBandwidth            () const;
                 std::string         getDependencyId         () const throw(dash::exception::AttributeNotPresentException);
                 std::string         getNumberOfChannels     () const throw(dash::exception::AttributeNotPresentException);
                 std::string         getSamplingRate         () const throw(dash::exception::AttributeNotPresentException);



More information about the vlc-commits mailing list