Go to file
wm4 6551acab68 avformat/matroskadec: fix handling of recursive SeekHead elements
When matroska_execute_seekhead() is called, it goes through the list of
seekhead entries and attempts to read elements not read yet. When doing
this, the parser can find further SeekHead elements, and will extend the
matroska->seekhead list. This can lead to a (practically) infinite loop
with certain broken files. (Maybe it can happen even with valid files.
The demuxer doesn't seem to check correctly whether an element has
already been read.)

Fix this by ignoring elements that were added to the seekhead field
during executing seekhead entries.

This does not fix the possible situation when multiple SeekHead elements
after the file header (i.e. occur after the "before_pos" file position)
point to the same elements. These elements will probably be parsed
multiple times, likely leading to bugs.

Fixes ticket #4162.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-07 22:30:56 +01:00
compat compat/w32pthreads: use the condition variable API directly when targeting newer versions of Windows 2014-10-09 17:51:46 -03:00
doc doc/filters: Add ascii graphics to clarify what the currently implemented tinterlace modes do 2014-12-07 20:41:35 +01:00
libavcodec avcodec/utils: Check AVFrame width/height in avcodec_encode_video2() 2014-12-07 17:47:44 +01:00
libavdevice avdevice/xcbgrab: Fix show_region rectangle 2014-12-07 16:13:30 +01:00
libavfilter avfilter/vf_signalstats: fix avframe leak on error 2014-12-06 17:05:20 +01:00
libavformat avformat/matroskadec: fix handling of recursive SeekHead elements 2014-12-07 22:30:56 +01:00
libavresample Merge commit '963f76144897d3f7684d82ec21e51dd50ea1106e' 2014-10-18 22:53:23 +02:00
libavutil avutil/opt: Check av_parse_video_rate()s return value 2014-12-07 02:57:39 +01:00
libpostproc postproc: fix qp count 2014-10-13 16:12:30 +02:00
libswresample x86/swr: add ff_float_to_int32_a_avx2 2014-11-07 15:01:35 -03:00
libswscale Merge commit '33c827f632f95ffe3399b695a5a0d47b366b6e20' 2014-12-06 01:30:08 +01:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests v210enc: Add SIMD optimised 8-bit and 10-bit encoders 2014-12-05 13:03:49 +00:00
tools Merge commit '6f26f14f134e753d6168591f30815b1c08c1498b' 2014-11-24 14:01:50 +01:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore gitignore: add test_copy.ffmeta 2014-10-17 15:57:12 +02:00
arch.mak Merge commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14' 2014-04-07 02:15:18 +02:00
Changelog Changelog: add 2.5 entry 2014-12-04 01:28:06 +01:00
cmdutils_common_opts.h opts: add list device sources/sinks options 2014-10-25 20:20:31 +02:00
cmdutils_opencl.c cmdutils_opencl: Use av_malloc_array() 2014-07-01 03:49:36 +02:00
cmdutils.c cmdutils: Exit in case of faulty stream specifiers 2014-11-17 04:06:32 +01:00
cmdutils.h opts: add list device sources/sinks options 2014-10-25 20:20:31 +02:00
common.mak Merge commit 'afe176265480880e1f702c96a8ba434b0d88728b' 2014-05-20 03:33:30 +02:00
configure configure: enable vda hwaccel by default 2014-12-03 12:54:23 +00:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3
CREDITS CREDITS: redirect to Git log, remove current outdated content 2013-01-31 18:02:52 +01:00
ffmpeg_dxva2.c Merge commit 'a7c5fddac8137654cb503295c4dfb6492df43643' 2014-04-30 00:46:38 +02:00
ffmpeg_filter.c ffmpeg: fix accurate seeking with -copyts 2014-11-24 17:31:26 +01:00
ffmpeg_opt.c ffmpeg: take bsf arguments from the command line 2014-11-30 13:11:34 +01:00
ffmpeg_vda.c Merge commit '1839fafa951308237c4672ffd9a94f927b26eac7' 2014-05-12 02:44:28 +02:00
ffmpeg_vdpau.c Merge commit '8de1d67967a9f9e22c66cb0c1e518ae4f30d07dd' 2014-10-06 16:31:51 +02:00
ffmpeg.c ffmpeg: drop usage of coded_frame 2014-12-03 03:06:43 +01:00
ffmpeg.h ffmpeg: take bsf arguments from the command line 2014-11-30 13:11:34 +01:00
ffplay.c ffplay: fix mem leak when opening input or parsing options fail. 2014-11-22 15:55:07 +01:00
ffprobe.c Set -scan_all_pmts 1 in ffmpeg, ffplay and ffprobe if not set by user. 2014-11-09 18:28:29 +01:00
ffserver_config.c ffserver_config: fix line width on fwd declarations 2014-12-06 02:24:53 -03:00
ffserver_config.h ffserver: dont leak child arguments 2014-11-26 23:32:33 +01:00
ffserver.c ffserver: use avcodec_copy_context to copy context 2014-12-02 21:58:34 +01:00
INSTALL.md INSTALL: add markdown syntax 2014-05-28 22:38:38 +02:00
library.mak Merge commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830' 2014-07-22 02:45:45 +02:00
LICENSE.md LICENSE.md: Add tests/reference.pnm 2014-11-30 19:12:22 +01:00
MAINTAINERS MAINTAINERS: add 2.5 2014-12-04 14:24:59 +01:00
Makefile ffserver: move configuration code to separate file 2014-10-22 22:37:40 +02:00
README.md README: fix 2 typo in the doc/examples sentence 2014-11-03 09:21:45 +01:00
RELEASE RELEASE: Bump 2014-12-04 11:44:35 +01:00
RELEASE_NOTES RELEASE_NOTES: update for 2.5 2014-12-03 22:40:02 +01:00
version.sh version.sh: Print versions based on the last git tag for release branches 2014-07-28 15:44:59 +02:00

FFmpeg README

FFmpeg 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.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe 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

Coding examples are available in the doc/examples directory.

License

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