Browse Source

avformat/avio: move short seek threshold to the context

This allows us to adjust it internally.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.8
Michael Niedermayer 10 years ago
parent
commit
4e640f0560
2 changed files with 8 additions and 1 deletions
  1. +6
    -0
      libavformat/avio.h
  2. +2
    -1
      libavformat/aviobuf.c

+ 6
- 0
libavformat/avio.h View File

@@ -196,6 +196,12 @@ typedef struct AVIOContext {
* This field is internal to libavformat and access from outside is not allowed.
*/
int orig_buffer_size;

/**
* Threshold to favor readahead over seek.
* This is current internal only, do not use from outside.
*/
int short_seek_threshold;
} AVIOContext;

/* unbuffered I/O */


+ 2
- 1
libavformat/aviobuf.c View File

@@ -97,6 +97,7 @@ int ffio_init_context(AVIOContext *s,
s->seekable = seek ? AVIO_SEEKABLE_NORMAL : 0;
s->max_packet_size = 0;
s->update_checksum = NULL;
s->short_seek_threshold = SHORT_SEEK_THRESHOLD;

if (!read_packet && !write_flag) {
s->pos = buffer_size;
@@ -232,7 +233,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
/* can do the seek inside the buffer */
s->buf_ptr = s->buffer + offset1;
} else if ((!s->seekable ||
offset1 <= s->buf_end + SHORT_SEEK_THRESHOLD - s->buffer) &&
offset1 <= s->buf_end + s->short_seek_threshold - s->buffer) &&
!s->write_flag && offset1 >= 0 &&
(!s->direct || !s->seek) &&
(whence != SEEK_END || force)) {


Loading…
Cancel
Save