| @@ -59,6 +59,19 @@ typedef struct URLProtocol { | |||||
| * for those nested protocols. | * for those nested protocols. | ||||
| */ | */ | ||||
| int (*url_open2)(URLContext *h, const char *url, int flags, AVDictionary **options); | 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_read)( URLContext *h, unsigned char *buf, int size); | ||||
| int (*url_write)(URLContext *h, const 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); | int64_t (*url_seek)( URLContext *h, int64_t pos, int whence); | ||||