|
|
@ -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); |
|
|
|