FFmpeg/doc
Aman Gupta 1f0eaa02aa avformat/hls: add http_multiple option
This improves network throughput of the hls demuxer by avoiding
the latency introduced by downloading segments one at a time.

The problem is particularly noticable over high-latency network
connections: for instance, if RTT is 250ms, there will a 250ms idle
period between when one segment response is read and the next one
starts.

The obvious solution to this is to use HTTP pipelining, where a
second request can be sent (on the persistent http/1.1 connection)
before the first response is fully read. Unfortunately the way the
http protocol is implemented in avformat makes implementing pipleining
very complex.

Instead, this commit simulates pipelining using two separate persistent
http connections. This has the advantage of working independently of
the http_persistent option, and can be used with http/1.0 servers as
well. The pair of connections is swapped every time a new segment starts
downloading, and a request for the next segment is sent on the secondary
connection right away. This means the second response will be ready and
waiting by the time the current response is fully read.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2017-12-22 14:42:50 -08:00
..
doxy Merge commit '257f00ec1a' 2016-06-22 11:28:51 +02:00
examples examples/vaapi_encode: Fix leak on hwframe init failure 2017-12-01 21:12:45 +00:00
.gitignore Merge commit '257f00ec1a' 2016-06-22 11:28:51 +02:00
APIchanges lavc/mediacodec: use AVMediaCodecDeviceContext hw_device_ctx if set 2017-12-16 00:52:27 +01:00
authors.texi
bitstream_filters.texi lavc: Add mpeg2_metadata bitstream filter 2017-10-17 20:56:30 +01:00
bootstrap.min.css
build_system.txt doc/build_system: Document how to build decoder fuzzer 2017-05-08 17:02:02 +02:00
codecs.texi doc/codecs.texi: Remove documentation of removed codec flags. 2017-11-20 01:10:54 +01:00
decoders.texi libavcodec/hevc_filter: support for all skip_loop_filter levels. 2017-12-04 19:05:36 +01:00
default.css
demuxers.texi avformat/hls: add http_multiple option 2017-12-22 14:42:50 -08:00
developer.texi doc/developer: revise mailing list section 2017-12-05 02:06:10 -08:00
devices.texi
doxy-wrapper.sh doc: make apidoc output independent of SRC_PATH 2016-01-02 12:11:36 +01:00
Doxyfile doc: fix spelling errors 2016-10-21 23:58:47 +02:00
encoders.texi libvpxenc,vp9: add corpus-complexity option 2017-11-28 15:17:51 -08:00
errno.txt doc/errno: fix description typo for ENAMETOOLONG 2015-12-18 04:04:14 +01:00
faq.texi doc: Add FAQs about running in background (rev 2) 2017-11-22 18:13:49 +01:00
fate.texi Merge commit '963b3ab11f' 2017-03-19 18:34:48 +01:00
fate_config.sh.template Merge commit '35d1f726eb' 2017-05-05 09:27:18 +02:00
ffmpeg-bitstream-filters.texi
ffmpeg-codecs.texi
ffmpeg-devices.texi
ffmpeg-filters.texi
ffmpeg-formats.texi
ffmpeg-protocols.texi
ffmpeg-resampler.texi
ffmpeg-scaler.texi
ffmpeg-utils.texi
ffmpeg.texi doc/ffmpeg: Document opencl for -init_hw_device 2017-11-26 15:40:24 +00:00
ffmpeg.txt
ffplay.texi ffplay: allow borderless playback windows 2017-02-01 22:03:26 +01:00
ffprobe.texi Fix several typos 2017-09-21 16:17:02 -08:00
ffprobe.xsd ffprobe: Print color properties from show_frames 2017-07-21 20:19:07 +02:00
ffserver.conf lavc: remove libfaac wrapper 2016-10-01 19:58:04 +01:00
ffserver.texi Fix several typos 2017-09-21 16:17:02 -08:00
fftools-common-opts.texi doc/fftools: Remove documentation for old -opencl_bench option 2017-11-26 15:40:24 +00:00
filter_design.txt doc: update filter_design.txt. 2017-09-12 11:03:51 +02:00
filters.texi avfilter/vf_framerate: fix scene change detection score 2017-12-21 23:03:10 +01:00
formats.texi avformat: make flush_packets a tri-state and set it to -1 (auto) by default 2017-06-24 18:51:29 +02:00
general.texi avformat: add NSP demuxer 2017-12-08 16:01:09 +01:00
git-howto.texi Merge commit '41ed7ab45f' 2016-06-21 21:55:34 +02:00
indevs.texi avdevice/decklink_dec: autodetect the video input format 2017-11-22 00:08:35 +01:00
issue_tracker.txt doc/issue_tracker.txt: various updates 2015-12-11 11:33:29 -09:00
lexicon doc: add a lexicon 2017-02-03 15:03:44 +01:00
libav-merge.txt doc/libav-merge: remove line about VP9 superframe parsing 2017-12-15 14:39:06 -03:00
libavcodec.texi
libavdevice.texi
libavfilter.texi
libavformat.texi
libavutil.texi
libswresample.texi
libswscale.texi
mailing-list-faq.texi doc: Add mailing list FAQ 2017-10-03 15:25:07 -08:00
Makefile doc: Add mailing list FAQ 2017-10-03 15:25:07 -08:00
metadata.texi doc: More semantic markup using @samp and @var where appropriate 2015-03-23 17:08:08 +01:00
mips.txt Edit documentation and versioning for the fixed point AAC decoder 2015-07-22 23:25:33 +02:00
multithreading.txt Merge commit 'def97856de' 2015-07-27 22:50:18 +02:00
muxers.texi avformat/dashenc: Option to generate hls playlist as well 2017-11-30 10:55:51 +08:00
nut.texi Merge commit '41ed7ab45f' 2016-06-21 21:55:34 +02:00
optimization.txt build: Prefer NASM assembler over YASM 2017-06-21 17:00:30 -03:00
outdevs.texi Remove all output devices 2017-10-13 23:57:01 +02:00
patchwork doc/patchwork: Document the patchwork states 2016-10-26 19:46:00 +02:00
platform.texi build: Prefer NASM assembler over YASM 2017-06-21 17:00:30 -03:00
print_options.c Merge commit '2025d37871' 2017-03-29 15:20:10 +02:00
protocols.texi libavformat: LibreSSL (libtls) support 2017-12-17 17:32:42 +11:00
rate_distortion.txt
resampler.texi swresample/options: enable linear_interp and exact_rational by default 2017-03-17 00:08:03 +07:00
scaler.texi doc/scaler: mention default scaling algorithm 2017-01-09 12:58:25 -09:00
snow.txt fix some a/an typos 2016-03-28 14:13:17 -08:00
style.min.css
swresample.txt
swscale.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
t2h.init doc/t2h: use container 2016-10-03 00:16:27 +01:00
t2h.pm doc/t2h: use container 2016-10-03 00:16:27 +01:00
tablegen.txt
texi2pod.pl doc: escape left brace in texi2pod.pl regex 2016-07-10 13:34:57 +02:00
texidep.pl
undefined.txt doc: Add initial documentation explaining undefined behavior and SUINT 2017-07-21 17:37:05 +02:00
utils.texi lavu,lavfi,ffmpeg: Remove experimental OpenCL API 2017-11-22 23:20:39 +00:00
writing_filters.txt Merge commit '11a9320de5' 2017-05-03 16:49:12 +02:00