Seeking forward in non-seekable media by discarding data, regardless of how far to...
authorTomas Härdin <tomas.hardin@codemill.se>
Thu, 8 Apr 2010 09:47:32 +0000 (09:47 +0000)
committerTomas Härdin <tomas.hardin@codemill.se>
Thu, 8 Apr 2010 09:47:32 +0000 (09:47 +0000)
Originally committed as revision 22822 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aviobuf.c

index 43e62da..0bc874b 100644 (file)
@@ -153,7 +153,7 @@ int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence)
         /* can do the seek inside the buffer */
         s->buf_ptr = s->buffer + offset1;
     } else if(s->is_streamed && !s->write_flag && offset1 >= 0 &&
         /* can do the seek inside the buffer */
         s->buf_ptr = s->buffer + offset1;
     } else if(s->is_streamed && !s->write_flag && offset1 >= 0 &&
-              (offset1 < (s->buf_end - s->buffer) + (1<<16) || force)) {
+              (whence != SEEK_END || force)) {
         while(s->pos < offset && !s->eof_reached)
             fill_buffer(s);
         if (s->eof_reached)
         while(s->pos < offset && !s->eof_reached)
             fill_buffer(s);
         if (s->eof_reached)