From 01b0ade665b94749d82061b6b7dee8863a2b1536 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Thu, 15 Mar 2012 12:16:54 +0100 Subject: url: Document the expected behaviour of url_read MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/url.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'libavformat/url.h') diff --git a/libavformat/url.h b/libavformat/url.h index 265a8ab2b6..bf8b6ed6e7 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