FFmpeg git repo
Go to file
wm4 95c298b125 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>
(cherry picked from commit 6551acab68)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-20 02:25:54 +01:00
compat
doc doc/examples/transcoding: check encoder before using it 2014-12-20 02:25:54 +01:00
libavcodec mmvideo: check frame dimensions 2014-12-19 15:52:23 +01:00
libavdevice fix Makefile objects for pulseaudio support 2014-11-28 21:31:26 +01:00
libavfilter avfilter/vf_lut: gammaval709() 2014-11-20 02:00:59 +01:00
libavformat avformat/matroskadec: fix handling of recursive SeekHead elements 2014-12-20 02:25:54 +01:00
libavresample
libavutil lavu/opt: fix av_opt_get function 2014-11-30 21:40:36 +01:00
libpostproc
libswresample
libswscale swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 output 2014-12-20 02:25:54 +01:00
presets
tests Merge commit 'b31a3c6f2670d4def5aa8bd3479da9c771ab09e2' into release/2.4 2014-12-02 11:56:29 +01:00
tools
.gitattributes Treat all '*.pnm' files as non-text file 2014-12-01 08:02:37 -05:00
.gitignore
arch.mak
Changelog Changelog: update for 2.4.4 2014-12-01 02:11:00 +01:00
cmdutils_common_opts.h
cmdutils_opencl.c
cmdutils.c
cmdutils.h
common.mak
configure configure: create the tests directory like the doc directory 2014-12-16 15:54:10 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
ffmpeg_dxva2.c
ffmpeg_filter.c
ffmpeg_opt.c
ffmpeg_vda.c
ffmpeg_vdpau.c
ffmpeg.c ffmpeg: drop usage of coded_frame 2014-12-20 02:25:54 +01:00
ffmpeg.h
ffplay.c
ffprobe.c
ffserver.c
INSTALL.md
library.mak
LICENSE.md
MAINTAINERS
Makefile
README.md
RELEASE update for 2.4.4 2014-11-30 21:59:47 +01:00
RELEASE_NOTES
version.sh

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

Conding examples are available in the doc/example directory.

License

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