summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/avio.c11
-rw-r--r--libavformat/url.h3
2 files changed, 11 insertions, 3 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c
index 5a1c79ec8e..8b7e495e55 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -315,8 +315,9 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence)
return ret;
}
-int ffurl_close(URLContext *h)
+int ffurl_closep(URLContext **hh)
{
+ URLContext *h= *hh;
int ret = 0;
if (!h) return 0; /* can happen when ffurl_open fails */
@@ -331,10 +332,16 @@ int ffurl_close(URLContext *h)
av_opt_free(h->priv_data);
av_freep(&h->priv_data);
}
- av_free(h);
+ av_freep(hh);
return ret;
}
+int ffurl_close(URLContext *h)
+{
+ return ffurl_closep(&h);
+}
+
+
int avio_check(const char *url, int flags)
{
URLContext *h;
diff --git a/libavformat/url.h b/libavformat/url.h
index 6ad754e19f..82f42e8c59 100644
--- a/libavformat/url.h
+++ b/libavformat/url.h
@@ -179,11 +179,12 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence);
/**
* Close the resource accessed by the URLContext h, and free the
- * memory used by it.
+ * memory used by it. Also set the URLContext pointer to NULL.
*
* @return a negative value if an error condition occurred, 0
* otherwise
*/
+int ffurl_closep(URLContext **h);
int ffurl_close(URLContext *h);
/**