1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Go to file
Martin Storsjö 9b4c3f5aad network: Add RFC 8305 style "Happy Eyeballs"/"Fast Fallback" helper function
For cases with dual stack (IPv4 + IPv6) connectivity, but where one
stack potentially is less reliable, strive to trying to connect over
both protocols in parallel, using whichever address connected first.

In cases with a hostname resolving to multiple IPv4 and IPv6
addresses, the current connection mechanism would try all addresses
in the order returned by getaddrinfo (with all IPv6 addresses ordered
before the IPv4 addresses normally). If connection attempts to the
IPv6 addresses return quickly with an error, this was no problem, but
if they were unsuccessful leading up to timeouts, the connection process
would have to wait for timeouts on all IPv6 target addresses before
attempting any IPv4 address.

Similar to what RFC 8305 suggests, reorder the list of addresses to
try connecting to, interleaving address families. After starting one
connection attempt, start another one in parallel after a small delay
(200 ms as suggested by the RFC).

For cases with unreliable IPv6 but reliable IPv4, this should make
connection attempts work as reliably as with plain IPv4, with only an
extra 200 ms of connection delay.

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-08-31 12:26:51 +03:00
avbuild build: Add missing config.sh dependency for pkg-config files 2017-11-09 15:22:03 +01:00
avtools avconv: make sure packets put into the muxing FIFO are refcounted 2018-08-01 09:55:34 +03:00
compat w32pthreads: always use Vista+ API, drop XP support 2018-04-09 21:58:39 +02:00
doc bsf: add a flushing mechanism to AVBSFContext 2018-08-17 14:06:21 -03:00
libavcodec qsvdec: Release packet on decoding failure for mpeg2/vp8/vc1 2018-08-23 08:22:46 +02:00
libavdevice Remove dv1394 input device 2017-10-13 23:57:59 +02:00
libavfilter qsv: Error out if getting session handle failed in avfilter 2018-08-23 08:22:34 +02:00
libavformat network: Add RFC 8305 style "Happy Eyeballs"/"Fast Fallback" helper function 2018-08-31 12:26:51 +03:00
libavresample Bump major versions of all libraries 2017-03-23 09:56:20 +01:00
libavutil frame: Simplify the video allocation 2018-08-05 22:45:08 +02:00
libswscale build: Drop check for sys/mman.h in favor of mmap() check 2017-10-10 23:20:16 +02:00
presets presets: spelling error in libvpx 1080p50_60 2011-10-22 00:28:56 +02:00
tests fate: Error out more gracefully on configure failure 2018-02-26 13:30:05 +01:00
tools aviocat: Check for output write errors 2017-09-04 09:42:52 +03:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore build: Ignore generated .version files 2017-02-03 11:37:53 +01:00
.travis.yml travis: Exclude gcc for the macOS target 2017-04-20 12:53:08 +02:00
Changelog libavformat: add mbedTLS based TLS 2018-04-25 10:34:12 +02:00
configure configure: fix inline asm checks 2018-06-29 13:43:28 +03:00
COPYING.GPLv2 Rename COPYING.GPL --> COPYING.GPLv2 and COPYING.LGPL --> COPYING.LGPLv2.1. 2009-06-05 09:51:31 +00:00
COPYING.GPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
CREDITS partially rename FFmpeg to Libav 2011-03-16 21:54:39 +01:00
INSTALL doc: clarify configure features 2011-04-07 02:54:12 +02:00
LICENSE Remove the legacy X11 screen grabber 2016-07-29 19:03:10 +02:00
Makefile Makefile: fix distclean target 2017-11-14 10:09:40 -03:00
README.md doc: Add travis badge 2015-09-14 00:19:08 +02:00
RELEASE Make the RELEASE file match with the most recent tag 2016-10-14 13:52:51 -04:00

Libav

Build Status

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.