aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2019-08-17 02:27:51 +0200
committerJames Almer <jamrial@gmail.com>2019-08-16 21:37:06 -0300
commit299e0dff1fbc3594eca9e67e18a28331892c23fb (patch)
treeee17db2c6629120ddfbd9f4e148e4d713ae3aec0
parentc8dcda22f170a3024c34517a766ff07aa0edaa09 (diff)
downloadffmpeg-299e0dff1fbc3594eca9e67e18a28331892c23fb.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> (cherry picked from commit c294f38c91f440880ffd28fda0eeb1154431ab7e)
-rw-r--r--libavformat/matroskadec.c2
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;
}