From e55ecbc93a213500ef8193043484f964b147fd71 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Thu, 15 Mar 2012 12:16:54 +0100 Subject: url: document url_read exact behaviour. --- libavformat/url.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'libavformat') 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); -- cgit v1.2.3