[FFmpeg-cvslog] Merge commit 'ccea588f831906084b8c8235222920e6984beb72'
Derek Buitenhuis
git at videolan.org
Mon Apr 18 16:48:40 CEST 2016
ffmpeg | branch: master | Derek Buitenhuis <derek.buitenhuis at gmail.com> | Mon Apr 18 15:47:05 2016 +0100| [299d4f9428c2f4d16a1575d80d80caacdd850606] | committer: Derek Buitenhuis
Merge commit 'ccea588f831906084b8c8235222920e6984beb72'
* commit 'ccea588f831906084b8c8235222920e6984beb72':
avio: Add an option 'rw_timeout'
Merged-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=299d4f9428c2f4d16a1575d80d80caacdd850606
---
doc/protocols.texi | 8 ++++++++
libavformat/avio.c | 5 ++++-
libavformat/version.h | 2 +-
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/doc/protocols.texi b/doc/protocols.texi
index 375d042..cfd7be7 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:
+
+ at table @option
+ at item rw_timeout
+Maximum time to wait for (network) read/write operations to complete,
+in microseconds.
+ at end table
+
A description of the currently available protocols follows.
@section async
diff --git a/libavformat/avio.c b/libavformat/avio.c
index 4b10dd8..7e68c9a 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 8504468..93b87eb 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, \
======================================================================
diff --cc doc/protocols.texi
index 375d042,c0663ac..cfd7be7
--- a/doc/protocols.texi
+++ b/doc/protocols.texi
@@@ -33,63 -14,19 +33,71 @@@ option "--enable-protocol=@var{PROTOCOL
particular protocol using the option
"--disable-protocol=@var{PROTOCOL}".
-The option "-protocols" of the av* tools will display the list of
+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.
+ at section async
+
+Asynchronous data filling wrapper for input stream.
+
+Fill data in a background thread, to decouple I/O operation from demux thread.
+
+ at example
+async:@var{URL}
+async:http://host/resource
+async:cache:http://host/resource
+ at end example
+
+ at section bluray
+
+Read BluRay playlist.
+
+The accepted options are:
+ at table @option
+
+ at item angle
+BluRay angle
+
+ at item chapter
+Start chapter (1...N)
+
+ at item playlist
+Playlist to read (BDMV/PLAYLIST/?????.mpls)
+
+ at end table
+
+Examples:
+
+Read longest playlist from BluRay mounted to /mnt/bluray:
+ at example
+bluray:/mnt/bluray
+ at end example
+
+Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2:
+ at example
+-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
+ at end example
+
+ at section cache
+
+Caching wrapper for input stream.
+
+Cache the input stream to temporary file. It brings seeking capability to live streams.
+
+ at example
+cache:@var{URL}
+ at end example
+
@section concat
Physical concatenation protocol.
diff --cc libavformat/avio.c
index 4b10dd8,6039990..7e68c9a
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@@ -50,15 -49,10 +50,16 @@@ static void *urlcontext_child_next(voi
return NULL;
}
+#define OFFSET(x) offsetof(URLContext,x)
+#define E AV_OPT_FLAG_ENCODING_PARAM
+#define D AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[] = {
- { "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 },
+ {"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 }
};
+
const AVClass ffurl_context_class = {
.class_name = "URLContext",
.item_name = urlcontext_to_name,
@@@ -388,9 -226,13 +389,11 @@@ static inline int retry_transfer_wrappe
}
} 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;
- if (ff_check_interrupt(&h->interrupt_callback))
- return AVERROR_EXIT;
}
return len;
}
diff --cc libavformat/version.h
index 8504468,75d765b..93b87eb
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@@ -29,9 -29,9 +29,9 @@@
#include "libavutil/version.h"
-#define LIBAVFORMAT_VERSION_MAJOR 57
-#define LIBAVFORMAT_VERSION_MINOR 5
-#define LIBAVFORMAT_VERSION_MICRO 1
+#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, \
More information about the ffmpeg-cvslog
mailing list