Commit 39589fb6 authored by Francois Cartegnie's avatar Francois Cartegnie

demux: adaptative: don't compute bw stats from tiny chunks

parent ff3e1e6e
...@@ -230,8 +230,8 @@ HTTPChunkBufferedSource::~HTTPChunkBufferedSource() ...@@ -230,8 +230,8 @@ HTTPChunkBufferedSource::~HTTPChunkBufferedSource()
void HTTPChunkBufferedSource::bufferize(size_t readsize) void HTTPChunkBufferedSource::bufferize(size_t readsize)
{ {
if(readsize < 32768) if(readsize < HTTPChunkSource::CHUNK_SIZE)
readsize = 32768; readsize = HTTPChunkSource::CHUNK_SIZE;
if(contentLength && readsize > contentLength - consumed) if(contentLength && readsize > contentLength - consumed)
readsize = contentLength - consumed; readsize = contentLength - consumed;
......
...@@ -84,6 +84,8 @@ namespace adaptative ...@@ -84,6 +84,8 @@ namespace adaptative
virtual block_t * read(size_t); /* impl */ virtual block_t * read(size_t); /* impl */
static const size_t CHUNK_SIZE = 32768;
protected: protected:
virtual block_t * consume(size_t); virtual block_t * consume(size_t);
HTTPConnection *connection; HTTPConnection *connection;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "../playlist/BaseRepresentation.h" #include "../playlist/BaseRepresentation.h"
#include "../playlist/BasePeriod.h" #include "../playlist/BasePeriod.h"
#include "../http/Chunk.h"
using namespace adaptative::logic; using namespace adaptative::logic;
...@@ -62,12 +63,13 @@ BaseRepresentation *RateBasedAdaptationLogic::getNextRepresentation(BaseAdaptati ...@@ -62,12 +63,13 @@ BaseRepresentation *RateBasedAdaptationLogic::getNextRepresentation(BaseAdaptati
if ( rep == NULL ) if ( rep == NULL )
return NULL; return NULL;
} }
return rep; return rep;
} }
void RateBasedAdaptationLogic::updateDownloadRate(size_t size, mtime_t time) void RateBasedAdaptationLogic::updateDownloadRate(size_t size, mtime_t time)
{ {
if(unlikely(time == 0)) if(unlikely(time == 0) || size < (HTTPChunkSource::CHUNK_SIZE>>1) )
return; return;
size_t current = bpsRemainder + CLOCK_FREQ * size * 8 / time; size_t current = bpsRemainder + CLOCK_FREQ * size * 8 / time;
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "SourceStream.hpp" #include "SourceStream.hpp"
#include "../ChunksSource.hpp" #include "../ChunksSource.hpp"
#include "../http/Chunk.h"
#include <vlc_stream.h> #include <vlc_stream.h>
#include <vlc_demux.h> #include <vlc_demux.h>
...@@ -70,7 +71,7 @@ ssize_t ChunksSourceStream::Read(uint8_t *buf, size_t size) ...@@ -70,7 +71,7 @@ ssize_t ChunksSourceStream::Read(uint8_t *buf, size_t size)
while(i_toread && !b_eof) while(i_toread && !b_eof)
{ {
const size_t i_blocksize = __MAX(i_toread, 32768); const size_t i_blocksize = __MAX(i_toread, http::HTTPChunkSource::CHUNK_SIZE);
if(!p_block && !(p_block = source->readNextBlock(i_blocksize))) if(!p_block && !(p_block = source->readNextBlock(i_blocksize)))
{ {
b_eof = true; b_eof = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment