Merge remote-tracking branch 'qatar/master'
[ffmpeg.git] / libavformat / cache.c
index c2bddf5..900554a 100644 (file)
@@ -51,15 +51,8 @@ typedef struct Context {
 
 static int cache_open(URLContext *h, const char *arg, int flags)
 {
-    int access;
-    const char *buffername;
-    Context *c;
-
-    c = av_mallocz(sizeof(Context));
-    if (!c) {
-        return AVERROR(ENOMEM);
-    }
-    h->priv_data = c;
+    char *buffername;
+    Context *c= h->priv_data;
 
     av_strstart(arg, "cache:", &arg);
 
@@ -70,7 +63,7 @@ static int cache_open(URLContext *h, const char *arg, int flags)
     }
 
     unlink(buffername);
-    av_free(buffername);
+    av_freep(&buffername);
 
     return ffurl_open(&c->inner, arg, flags, &h->interrupt_callback, NULL);
 }
@@ -130,8 +123,6 @@ static int cache_close(URLContext *h)
     close(c->fd);
     ffurl_close(c->inner);
 
-    av_freep(&h->priv_data);
-
     return 0;
 }
 
@@ -141,4 +132,5 @@ URLProtocol ff_cache_protocol = {
     .url_read            = cache_read,
     .url_seek            = cache_seek,
     .url_close           = cache_close,
+    .priv_data_size      = sizeof(Context),
 };