[vlc-devel] [PATCH 5/7] dash: set minbuffer for stream stability

Christopher at mailsrv.uni-klu.ac.at Christopher at mailsrv.uni-klu.ac.at
Mon Feb 20 13:49:23 CET 2012


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

---
 .../adaptationlogic/AbstractAdaptationLogic.cpp    |    4 ++++
 .../dash/adaptationlogic/AbstractAdaptationLogic.h |    1 +
 .../adaptationlogic/RateBasedAdaptationLogic.cpp   |    3 +++
 .../adaptationlogic/RateBasedAdaptationLogic.h     |    2 ++
 4 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.cpp b/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.cpp
index ebd0a74..da1b40e 100644
--- a/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.cpp
+++ b/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.cpp
@@ -64,3 +64,7 @@ long AbstractAdaptationLogic::getBpsLastChunk        () const
 {
     return this->bpsLastChunk;
 }
+int AbstractAdaptationLogic::getBufferPercent        () const
+{
+    return this->bufferedPercent;
+}
diff --git a/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.h b/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.h
index 97be099..7f25387 100644
--- a/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.h
+++ b/modules/stream_filter/dash/adaptationlogic/AbstractAdaptationLogic.h
@@ -52,6 +52,7 @@ namespace dash
 
                 long                        getBpsAvg               () const;
                 long                        getBpsLastChunk         () const;
+                int                         getBufferPercent        () const;
 
             private:
                 int                     bpsAvg;
diff --git a/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.cpp b/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.cpp
index c331e05..b3fd174 100644
--- a/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.cpp
+++ b/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.cpp
@@ -55,6 +55,9 @@ Chunk*  RateBasedAdaptationLogic::getNextChunk() throw(EOFException)
 
     long bitrate = this->getBpsAvg();
 
+    if(this->getBufferPercent() < MINBUFFER)
+        bitrate = 0;
+
     Representation *rep = this->mpdManager->getRepresentation(this->currentPeriod, bitrate, this->width, this->height);
 
     if ( rep == NULL )
diff --git a/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.h b/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.h
index 44d5be4..204de72 100644
--- a/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.h
+++ b/modules/stream_filter/dash/adaptationlogic/RateBasedAdaptationLogic.h
@@ -35,6 +35,8 @@
 #include <vlc_common.h>
 #include <vlc_stream.h>
 
+#define MINBUFFER 30
+
 namespace dash
 {
     namespace logic
-- 
1.7.0.4




More information about the vlc-devel mailing list