diff stream/cache2.c @ 31169:ac84149bbdaf

Retry reading even if we hit eof before. This allows playing growing files even with a large cache.
author reimar
date Wed, 26 May 2010 18:23:43 +0000
parents 09e3134b649d
children e735964b5d56
line wrap: on
line diff
--- a/stream/cache2.c	Wed May 26 18:01:38 2010 +0000
+++ b/stream/cache2.c	Wed May 26 18:23:43 2010 +0000
@@ -225,7 +225,7 @@
   //memcpy(&s->buffer[pos],s->stream->buffer,len); // avoid this extra copy!
   // ....
   len=stream_read(s->stream,&s->buffer[pos],space);
-  if(!len) s->eof=1;
+  s->eof= !len;
 
   s->max_filepos+=len;
   if(pos+len>=s->buffer_size){
@@ -477,7 +477,6 @@
 
 int cache_stream_fill_buffer(stream_t *s){
   int len;
-  if(s->eof){ s->buf_pos=s->buf_len=0; return 0; }
   if(!s->cache_pid) return stream_fill_buffer(s);
 
 //  cache_stats(s->cache_data);
@@ -488,6 +487,7 @@
   //printf("cache_stream_fill_buffer->read -> %d\n",len);
 
   if(len<=0){ s->eof=1; s->buf_pos=s->buf_len=0; return 0; }
+  s->eof=0;
   s->buf_pos=0;
   s->buf_len=len;
   s->pos+=len;