diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-18 15:47:05 +0100 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-18 15:47:54 +0100 |
commit | 299d4f9428c2f4d16a1575d80d80caacdd850606 (patch) | |
tree | 79ed46565ed50be08459daa2d66f5f5789fb625d | |
parent | 4eef36a4f6db1feb9d628337bd96e07a9b482c1a (diff) | |
parent | ccea588f831906084b8c8235222920e6984beb72 (diff) | |
download | ffmpeg-299d4f9428c2f4d16a1575d80d80caacdd850606.tar.gz |
Merge commit 'ccea588f831906084b8c8235222920e6984beb72'
* commit 'ccea588f831906084b8c8235222920e6984beb72':
avio: Add an option 'rw_timeout'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-rw-r--r-- | doc/protocols.texi | 8 | ||||
-rw-r--r-- | libavformat/avio.c | 5 | ||||
-rw-r--r-- | libavformat/version.h | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/doc/protocols.texi b/doc/protocols.texi index 375d0428ae..cfd7be7cf3 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -36,6 +36,14 @@ particular protocol using the option The option "-protocols" of the ff* tools will display the list of supported protocols. +All protocols accept the following options: + +@table @option +@item rw_timeout +Maximum time to wait for (network) read/write operations to complete, +in microseconds. +@end table + A description of the currently available protocols follows. @section async diff --git a/libavformat/avio.c b/libavformat/avio.c index 4b10dd8f39..7e68c9a6e9 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -56,6 +56,7 @@ static void *urlcontext_child_next(void *obj, void *prev) static const AVOption options[] = { {"protocol_whitelist", "List of protocols that are allowed to be used", OFFSET(protocol_whitelist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D }, {"protocol_blacklist", "List of protocols that are not allowed to be used", OFFSET(protocol_blacklist), AV_OPT_TYPE_STRING, { .str = NULL }, CHAR_MIN, CHAR_MAX, D }, + {"rw_timeout", "Timeout for IO operations (in microseconds)", offsetof(URLContext, rw_timeout), AV_OPT_TYPE_INT64, { .i64 = 0 }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_DECODING_PARAM }, { NULL } }; @@ -388,8 +389,10 @@ static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, } } else if (ret < 1) return (ret < 0 && ret != AVERROR_EOF) ? ret : len; - if (ret) + if (ret) { fast_retries = FFMAX(fast_retries, 2); + wait_since = 0; + } len += ret; } return len; diff --git a/libavformat/version.h b/libavformat/version.h index 8504468d59..93b87ebe0e 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #define LIBAVFORMAT_VERSION_MAJOR 57 #define LIBAVFORMAT_VERSION_MINOR 34 -#define LIBAVFORMAT_VERSION_MICRO 101 +#define LIBAVFORMAT_VERSION_MICRO 102 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ |