Signed-off-by: Michael Niedermayer <michae...@gmx.at>
---
 libavformat/aviobuf.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index b32ff9f..3aa2b2d 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -809,6 +809,8 @@ int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
     if (buf_size < filled || s->seekable)
         return 0;
     av_assert0(!s->write_flag);
+    if (!s->resizeable)
+        return AVERROR(EINVAL);
 
     buffer = av_malloc(buf_size);
     if (!buffer)
@@ -873,6 +875,14 @@ int ffio_rewind_with_probe_data(AVIOContext *s, unsigned 
char **bufp, int buf_si
         return AVERROR(EINVAL);
     }
 
+    if (!s->resizeable) {
+        int64_t ret = avio_seek(s, 0, SEEK_SET);
+        av_freep(bufp);
+        if (ret < 0)
+            return ret;
+        return 0;
+    }
+
     overlap = buf_size - buffer_start;
     new_size = buf_size + buffer_size - overlap;
 
-- 
1.7.9.5

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to