diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2019-08-17 02:27:51 +0200 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-08-16 21:33:54 -0300 |
commit | c294f38c91f440880ffd28fda0eeb1154431ab7e (patch) | |
tree | 1575c19fb4a754854e4a1c60bc9bc5834e330513 | |
parent | ddd92ba2c6c6d0b5f3d5b4496ab07fbcf73b58a2 (diff) | |
download | ffmpeg-c294f38c91f440880ffd28fda0eeb1154431ab7e.tar.gz |
avformat/matroskadec: Fix seeking
matroska_reset_status (a function that is used during seeking (among
other things)) used an int for the return value of avio_seek which
returns an int64_t. Checking the return value then indicated an error
even though the seek was successfull for targets in the range of
2GB-4GB, 6GB-8GB, ... This error implied that the status hasn't been
reset and in particular, the old level was still considered to be in
force, so that ebml_parse returned errors because the newly parsed
elements were of course not contained in the previously active and still
wrongly considered active master element any more.
Addresses ticket #8084.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavformat/matroskadec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 4e20f15792..1ea9b807e6 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -757,7 +757,7 @@ static int matroska_reset_status(MatroskaDemuxContext *matroska, uint32_t id, int64_t position) { if (position >= 0) { - int err = avio_seek(matroska->ctx->pb, position, SEEK_SET); + int64_t err = avio_seek(matroska->ctx->pb, position, SEEK_SET); if (err < 0) return err; } |