summaryrefslogtreecommitdiff
path: root/libavformat/url.h
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-03-15 12:16:54 +0100
committerNicolas George <nicolas.george@normalesup.org>2012-03-17 11:50:54 +0100
commite55ecbc93a213500ef8193043484f964b147fd71 (patch)
tree46f6499a6021797af70e6967021fce167d0bf1f2 /libavformat/url.h
parent0ac38deda7be67e80cd0731b23f9fd3deef67a56 (diff)
downloadffmpeg-e55ecbc93a213500ef8193043484f964b147fd71.tar.gz
url: document url_read exact behaviour.
Diffstat (limited to 'libavformat/url.h')
-rw-r--r--libavformat/url.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/libavformat/url.h b/libavformat/url.h
index b459a59e03..b3eafa63c7 100644
--- a/libavformat/url.h
+++ b/libavformat/url.h
@@ -59,6 +59,19 @@ typedef struct URLProtocol {
* for those nested protocols.
*/
int (*url_open2)(URLContext *h, const char *url, int flags, AVDictionary **options);
+
+ /**
+ * Read data from the protocol.
+ * If data is immediately available (even less than size), EOF is
+ * reached or an error occurs (including EINTR), return immediately,
+ * Otherwise:
+ * In non-blocking mode, return AVERROR(EAGAIN) immediately.
+ * In blocking mode, wait for data/EOF/error with a short timeout (0.1s),
+ * and return AVERROR(EAGAIN) on timeout.
+ * Checking interrupt_callback, looping on EINTR and EAGAIN and until
+ * enough data has been read is left to the calling function; see
+ * retry_transfer_wrapper in avio.c.
+ */
int (*url_read)( URLContext *h, unsigned char *buf, int size);
int (*url_write)(URLContext *h, const unsigned char *buf, int size);
int64_t (*url_seek)( URLContext *h, int64_t pos, int whence);