OSDN Git Service

avio: don't replicate avio_alloc_context functionality.
authorAnton Khirnov <anton@khirnov.net>
Sat, 21 May 2011 17:13:22 +0000 (19:13 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 15 Jul 2011 18:04:46 +0000 (20:04 +0200)
libavformat/aviobuf.c

index fa63ddf..b5e9d4c 100644 (file)
@@ -838,19 +838,12 @@ int ffio_fdopen(AVIOContext **s, URLContext *h)
     if (!buffer)
         return AVERROR(ENOMEM);
 
-    *s = av_mallocz(sizeof(AVIOContext));
-    if(!*s) {
+    *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h,
+                            ffurl_read, ffurl_write, ffurl_seek);
+    if (!*s) {
         av_free(buffer);
         return AVERROR(ENOMEM);
     }
-
-    if (ffio_init_context(*s, buffer, buffer_size,
-                      h->flags & AVIO_FLAG_WRITE, h,
-                      ffurl_read, ffurl_write, ffurl_seek) < 0) {
-        av_free(buffer);
-        av_freep(s);
-        return AVERROR(EIO);
-    }
 #if FF_API_OLD_AVIO
     (*s)->is_streamed = h->is_streamed;
 #endif