FFmpeg git repo
Go to file
Martin Storsjö 8bf3bf69ad http: Stop reading after receiving the whole file for non-chunked transfers
Previously this logic was only used if the server didn't
respond with Connection: close, but use it even for that case,
if the server response is non-chunked.

Originally the http code has relied on Connection: close to close
the socket when the file/stream is received - the http protocol
code just kept reading from the socket until the socket was closed.
In f240ed18 we added a check for the file size, because some
http servers didn't respond with Connection: close (and wouldn't
close the socket) even though we requested it, which meant that the
http protocol blocked for a long time at the end of files, waiting
for a socket level timeout.

When reading over tls, trying to read at the end of the connection,
when the peer has closed the connection, can produce spurious (but
harmless) warnings. Therefore always voluntarily stop reading when
the specified file size has been received, if not using a chunked
transfer encoding. (For chunked transfers, we already return 0
as soon as we get the chunk header indicating end of stream.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 14:34:25 +03:00
compat Work around broken floating point limits on some systems. 2014-03-10 10:27:17 +01:00
doc avresample: Introduce AVFrame-based API 2014-08-10 14:26:37 +02:00
libavcodec ffv1dec: check that global parameters do not change in version 0/1 2014-08-12 10:21:21 +00:00
libavdevice Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
libavfilter Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
libavformat http: Stop reading after receiving the whole file for non-chunked transfers 2014-08-13 14:34:25 +03:00
libavresample avresample: Introduce AVFrame-based API 2014-08-10 14:26:37 +02:00
libavutil avresample: Introduce AVFrame-based API 2014-08-10 14:26:37 +02:00
libswscale Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
presets
tests fate: generate tests/pixfmts.mak for all targets requiring it 2014-08-05 12:18:59 +02:00
tools ismindex: Add an option for outputting files elsewhere than in the current directory 2014-07-03 20:13:27 +03:00
.gitignore fate: Split fate-pixdesc tests and dispatch them through Make 2014-08-01 01:18:30 -07:00
arch.mak aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
avconv_dxva2.c avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header 2014-04-29 16:50:43 +02:00
avconv_filter.c avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
avconv_opt.c video4linux2: Avoid a floating point exception 2014-07-28 13:11:41 -07:00
avconv_vda.c avconv: Support VDA hwaccel 2014-05-11 15:00:03 +02:00
avconv_vdpau.c avconv: add support for VDPAU decoding 2013-11-23 11:55:53 +01:00
avconv.c avconv: set the output stream timebase 2014-07-09 13:30:33 +00:00
avconv.h avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
avplay.c avplay: Handle pixel aspect ratio properly 2014-07-08 21:14:43 +03:00
avprobe.c cmdutils: wrap exit explicitly 2013-07-07 21:43:23 +02:00
Changelog Add Icecast protocol 2014-08-04 12:56:42 +03:00
cmdutils_common_opts.h avplay: Accept cpuflags option 2013-10-22 10:49:31 +02:00
cmdutils.c avconv: Match stream id 2014-03-13 11:59:34 +01:00
cmdutils.h cmdutils: Mark exit_program as av_noreturn 2014-03-28 00:40:43 +01:00
common.mak build: export library dependencies in ${name}_FFLIBS 2014-05-20 00:43:51 +02:00
configure configure: Don't pass MSVC compiler options -M[TD] to armasm 2014-08-10 21:29:06 +03:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL
library.mak build: Support executable only ldflags 2014-07-21 22:18:35 +02:00
LICENSE Add libx265 encoder 2014-02-12 13:13:17 +00:00
Makefile configure: add support for neon intrinsics 2014-07-21 23:18:29 +02:00
README
RELEASE Prepare for 11_alpha2 Release 2014-08-10 10:07:55 -04:00
version.sh

Libav README
------------

1) Documentation
----------------

* Read the documentation in the doc/ directory.

2) Licensing
------------

* See the LICENSE file.