Index: stream/stream.c =================================================================== --- stream/stream.c (revision 27776) +++ stream/stream.c (working copy) @@ -352,18 +352,21 @@ // putchar('%');fflush(stdout); } -while(stream_fill_buffer(s) > 0 && pos >= 0) { - if(pos<=s->buf_len){ +s->eof = 0; // EOF reset when seek succeeds. +while(stream_fill_buffer(s) > 0) { + if(posbuf_len){ s->buf_pos=pos; // byte position in sector return 1; } pos -= s->buf_len; } - -// if(pos==s->buf_len) printf("XXX Seek to last byte of file -> EOF\n"); - - mp_msg(MSGT_STREAM,MSGL_V,"stream_seek: WARNING! Can't seek to 0x%"PRIX64" !\n",(int64_t)(pos+newpos)); - return 0; +// Fill failed, but seek still is a success. +s->pos += pos; +s->buf_pos = 0; +s->buf_len = 0; + +mp_msg(MSGT_STREAM,MSGL_V, "stream_seek: Seek to/past EOF: no buffer preloaded.\n"); +return 1; }