changeset 2348:76778e307ddc

EOF bug fixed
author arpi
date Sun, 21 Oct 2001 18:14:24 +0000
parents f6a10f4b6119
children e977b05a6fd5
files libmpdemux/cache2.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/cache2.c	Sun Oct 21 18:13:48 2001 +0000
+++ b/libmpdemux/cache2.c	Sun Oct 21 18:14:24 2001 +0000
@@ -37,6 +37,7 @@
   int min_filepos; // buffer contain only a part of the file, from min-max pos
   int max_filepos;
   int offset;      // filepos <-> bufferpos  offset value (filepos of the buffer's first byte)
+  int eof;
   // commands/locking:
   int cmd_lock;   // 1 if we will seek/reset buffer, 2 if we are ready for cmd
   int fifo_flag;  // 1 if we should use FIFO to notice cache about buffer reads.
@@ -67,6 +68,8 @@
     if(newb<min_fill) min_fill=newb; // statistics...
 
     if(newb<=0){
+	// eof?
+	if(s->eof) break;
 	// waiting for buffer fill...
 	usleep(10000); // 10ms
 	continue;
@@ -134,7 +137,8 @@
   //len=stream_fill_buffer(s->stream);
   //memcpy(&s->buffer[pos],s->stream->buffer,len); // avoid this extra copy!
   // ....
-  stream_read(s->stream,&s->buffer[pos],space); len=space;
+  len=stream_read(s->stream,&s->buffer[pos],space);
+  if(!len) s->eof=1;
   
   s->max_filepos+=len;
   if(pos+len>=s->buffer_size){