diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-03-15 12:16:54 +0100 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-03-19 16:25:51 +0200 |
commit | 01b0ade665b94749d82061b6b7dee8863a2b1536 (patch) | |
tree | 533376fbaf2fe8c027de0d46e25185a52d3e5ac7 /libavformat | |
parent | 57151f8674f73445c5cf82b7c80e3a98b3baed33 (diff) | |
download | ffmpeg-01b0ade665b94749d82061b6b7dee8863a2b1536.tar.gz |
url: Document the expected behaviour of url_read
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-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 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); |