Index: stream/stream.c =================================================================== --- stream/stream.c (revision 27776) +++ stream/stream.c (working copy) @@ -352,6 +352,14 @@ // putchar('%');fflush(stdout); } +s->eof = 0; // EOF reset when seek succeeds, as for system seek(). +if ((pos+newpos) >= s->end_pos) { + s->pos = (pos+newpos); + 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; +} while(stream_fill_buffer(s) > 0 && pos >= 0) { if(pos<=s->buf_len){ s->buf_pos=pos; // byte position in sector @@ -360,8 +368,6 @@ 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; }