summaryrefslogtreecommitdiffstats
path: root/stream/stream_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream_file.c')
-rw-r--r--stream/stream_file.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/stream/stream_file.c b/stream/stream_file.c
index cb8d4e2dbf..a8dcf8fbdb 100644
--- a/stream/stream_file.c
+++ b/stream/stream_file.c
@@ -69,26 +69,6 @@ static int seek(stream_t *s, int64_t newpos)
return 1;
}
-static int seek_forward(stream_t *s, int64_t newpos)
-{
- if (newpos < s->pos) {
- mp_msg(MSGT_STREAM, MSGL_INFO,
- "Cannot seek backward in linear streams!\n");
- return 0;
- }
- while (s->pos < newpos) {
- int len = s->fill_buffer(s, s->buffer, STREAM_BUFFER_SIZE);
- if (len <= 0) { // EOF
- s->buf_pos = s->buf_len = 0;
- break;
- }
- s->buf_pos = 0;
- s->buf_len = len;
- s->pos += len;
- }
- return 1;
-}
-
static int control(stream_t *s, int cmd, void *arg)
{
struct priv *p = s->priv;
@@ -192,10 +172,8 @@ static int open_f(stream_t *stream, int mode)
len = -1;
#endif
stream->type = STREAMTYPE_FILE;
- if (len == -1 && mode == STREAM_READ) {
- stream->seek = seek_forward;
- stream->flags = MP_STREAM_SEEK_FW;
- } else if (len >= 0) {
+ stream->flags = MP_STREAM_FAST_SKIPPING;
+ if (len >= 0) {
stream->seek = seek;
stream->end_pos = len;
}