diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-03-15 12:16:54 +0100 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-03-17 11:50:54 +0100 |
commit | e55ecbc93a213500ef8193043484f964b147fd71 (patch) | |
tree | 46f6499a6021797af70e6967021fce167d0bf1f2 /libavformat/url.h | |
parent | 0ac38deda7be67e80cd0731b23f9fd3deef67a56 (diff) | |
download | ffmpeg-e55ecbc93a213500ef8193043484f964b147fd71.tar.gz |
url: document url_read exact behaviour.
Diffstat (limited to 'libavformat/url.h')
-rw-r--r-- | libavformat/url.h | 13 |
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); |