summaryrefslogtreecommitdiff
path: root/libavformat/avio.h
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2011-04-08 18:32:25 +0200
committerAnton Khirnov <anton@khirnov.net>2011-04-13 07:38:15 +0200
commit175389c85487822f1ee180ee01cc770df896557f (patch)
tree1fa215240c2a7c8b9eb27b2566385c4f2728c52b /libavformat/avio.h
parentcbea3ac8203690dec29c473399a50f8f6bb76c47 (diff)
avio: add avio_check()
The new function is more flexible than url_exist(), as it allows to specify which access flags to check, and does not require an explicit open of the checked resource. Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat/avio.h')
-rw-r--r--libavformat/avio.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/libavformat/avio.h b/libavformat/avio.h
index a4109a2996..14aa599fe0 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -134,6 +134,7 @@ typedef struct URLProtocol {
int priv_data_size;
const AVClass *priv_data_class;
int flags;
+ int (*url_check)(URLContext *h, int mask);
} URLProtocol;
typedef struct URLPollEntry {
@@ -347,6 +348,23 @@ attribute_deprecated int url_close_buf(AVIOContext *s);
int url_exist(const char *url);
/**
+ * Return AVIO_* access flags corresponding to the access permissions
+ * of the resource in url, or a negative value corresponding to an
+ * AVERROR code in case of failure. The returned access flags are
+ * masked by the value in flags.
+ *
+ * @note This function is intrinsically unsafe, in the sense that the
+ * checked resource may change its existence or permission status from
+ * one call to another. Thus you should not trust the returned value,
+ * unless you are sure that no other processes are accessing the
+ * checked resource.
+ *
+ * @note This function is slightly broken until next major bump
+ * because of AVIO_RDONLY == 0. Don't use it until then.
+ */
+int avio_check(const char *url, int flags);
+
+/**
* The callback is called in blocking functions to test regulary if
* asynchronous interruption is needed. AVERROR_EXIT is returned
* in this case by the interrupted function. 'NULL' means no interrupt