Do not set pos to an error value.
authorHoward Chu <hyc@highlandsun.com>
Mon, 12 Apr 2010 15:03:30 +0000 (15:03 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Mon, 12 Apr 2010 15:03:30 +0000 (15:03 +0000)
Patch by Howard Chu, hyc highlandsun com

Originally committed as revision 22853 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aviobuf.c

index 0bc874b..421a64a 100644 (file)
@@ -743,8 +743,13 @@ int64_t av_url_read_fseek(ByteIOContext *s, int stream_index,
         return AVERROR(ENOSYS);
     ret = s->read_seek(h, stream_index, timestamp, flags);
     if(ret >= 0) {
+        int64_t pos;
         s->buf_ptr = s->buf_end; // Flush buffer
-        s->pos = s->seek(h, 0, SEEK_CUR);
+        pos = s->seek(h, 0, SEEK_CUR);
+        if (pos >= 0)
+            s->pos = pos;
+        else if (pos != AVERROR(ENOSYS))
+            ret = pos;
     }
     return ret;
 }