summaryrefslogtreecommitdiff
path: root/libavformat/aviobuf.c
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2015-01-24 13:06:19 +0100
committerLuca Barbato <lu_zero@gentoo.org>2015-01-28 16:28:10 +0100
commit3c18a7b18807de81566381a1bcbe9f6103c0296b (patch)
tree877220f504d48e3d9ace5e1421a0e12c6ac6ad1a /libavformat/aviobuf.c
parent6a808f5ae17f1fcdbcfb18055872c12aef70ffff (diff)
avio: Do not consider the end-of-buffer position valid
Trigger a refill if the seek action moves the pointer at the end of the buffer. Before this patch the read action following the seek would trigger the refill, while write action would write outside the buffer. In the Libav codebase few muxers seek forward outside of what already has been written so it is quite unlikely to experience the problem with the default buffer size. CC: libav-stable@libav.org
Diffstat (limited to 'libavformat/aviobuf.c')
-rw-r--r--libavformat/aviobuf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 6923b78ea1..5f848b20f9 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -206,7 +206,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
}
offset1 = offset - pos;
if (!s->must_flush &&
- offset1 >= 0 && offset1 <= (s->buf_end - s->buffer)) {
+ offset1 >= 0 && offset1 < (s->buf_end - s->buffer)) {
/* can do the seek inside the buffer */
s->buf_ptr = s->buffer + offset1;
} else if ((!s->seekable ||