summaryrefslogtreecommitdiffstats
path: root/stream/cache2.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/cache2.c')
-rw-r--r--stream/cache2.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/stream/cache2.c b/stream/cache2.c
index d7a8005917..2785a0c60f 100644
--- a/stream/cache2.c
+++ b/stream/cache2.c
@@ -39,6 +39,7 @@
#include <unistd.h>
#include <errno.h>
+#include "libavutil/avutil.h"
#include "osdep/shmem.h"
#include "osdep/timer.h"
#if defined(__MINGW32__)
@@ -168,6 +169,7 @@ static int cache_fill(cache_vars_t *s)
{
int back,back2,newb,space,len,pos;
off_t read=s->read_filepos;
+ int read_chunk;
if(read<s->min_filepos || read>s->max_filepos){
// seek...
@@ -213,7 +215,9 @@ static int cache_fill(cache_vars_t *s)
if(space>s->buffer_size-pos) space=s->buffer_size-pos;
// limit one-time block size
- if(space>4*s->sector_size) space=4*s->sector_size;
+ read_chunk = s->stream->read_chunk;
+ if (!read_chunk) read_chunk = 4*s->sector_size;
+ space = FFMIN(space, read_chunk);
#if 1
// back+newb+space <= buffer_size