Browse files

FFmpeg resync to FFmpeg release/1.2 at SHA1 33d699a4e73d5281b2cfcd0fa…

  • Loading branch information...
jyavenard committed May 12, 2013
1 parent 051ab13 commit 9c728cb8f19100e9976196709b8258480e72d30b
Showing 1,061 changed files with 43,178 additions and 23,777 deletions.

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -37,6 +37,7 @@
@@ -66,5 +67,6 @@
@@ -1,55 +1,6 @@
This file contains the names of some of the people who have contributed to
FFmpeg. The names are sorted alphabetically by last name. As this file is
currently quite outdated and git serves as a much better tool for determining
authorship, it remains here for historical reasons only.
See the Git history of the project (git:// to
get the names of people who have contributed to FFmpeg.
Dénes Balatoni
Michel Bardiaux
Fabrice Bellard
Patrice Bensoussan
Alex Beregszaszi
Thilo Borgmann
Mario Brito
Ronald Bultje
Alex Converse
Maarten Daniels
Reimar Doeffinger
Tim Ferguson
Brian Foley
Arpad Gereoffy
Philip Gladstone
Vladimir Gneushev
Roine Gustafsson
David Hammerton
Wolfgang Hesseler
Marc Hoffman
Falk Hueffner
Aurélien Jacobs
Steven Johnson
Zdenek Kabelac
Robin Kay
Todd Kirby
Nick Kurshev
Benjamin Larsson
Loïc Le Loarer
Daniel Maas
Mike Melanson
Loren Merritt
Jeff Muizelaar
Michael Niedermayer
François Revol
Peter Ross
Måns Rullgård
Stefano Sabatini
Roman Shaposhnik
Oded Shimon
Dieter Shirley
Konstantin Shishkov
Juan J. Sierralta
Ewald Snel
Sascha Sommer
Leon van Stuivenberg
Roberto Togni
Lionel Ulmer
Reynaldo Verdejo
To check the log, you can type the command "git log" in the FFmpeg
source directory, or browse the online repository at
@@ -1,71 +1,29 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version <next>:
- h264: fix deadlocks with broken/fuzzed files
- flvdec: make decoder more robust
- vorbisdec: fix buffer overflow (CVE-2013-0894)
- ac3dec: validate channel output mode against channel count
- doc: minor improvements
- loco: check that there is data left after decoding a plane.
- mov: use the format context for logging.
- lagarith: avoid infinite loop in lag_rac_refill() with corrupted files
- flicvideo: avoid an infinite loop in byte run compression
- av_memcpy_backptr: avoid an infinite loop for back = 0
- mlpdec: do not try to allocate a zero-sized output buffer.
- qtrle: add more checks against pixel_ptr being negative.
- 4xm: check the return value of read_huffman_tables().
- cavs: initialize various context tables, avoids crashes with corrupted files
- x86/H.264: Don't use redzone in AVX h264_deblock on Win64
- VQA video: check chunk sizes before reading chunks
- RoQ video decoder: check dimensions validity
- QDM2: check array index before use, fix out of array accesses
- mpegvideo: Do REBASE_PICTURE with byte pointers
- SVQ3: unbreak decoding
- libopencore-amrwb: Make AMR-WB ifdeffery more precise
- libopencore-amr: Conditionally compile decoder and encoder bits
- arm: Fall back to runtime cpu feature detection via /proc/cpuinfo
- xxan: properly handle odd heights
- msrledec: check bounds before constructing a possibly invalid pointer,
- qtrle: fix the topmost line for 1bit
- aasc: fix output for msrle compression
- yop: check for input overreads
- yop: check that extradata is large enough
- fraps: fix off-by one bug for version 1
- vf_delogo: fix copying the input frame
- vf_delogo: fix an uninitialized read
- dnxhdenc: fix invalid reads in dnxhd_mb_var_thread()
- ATRAC3: use correct loop variable in add_tonal_components()
- MLP: store the channel layout for each substream
- MLP decoder: TrueHD: use Libav channel order
- x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
- arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht
- lavr: call mix_function_init() in ff_audio_mix_set_matrix()
- rtpenc_chain: Use the original AVFormatContext for getting payload type
- rtp: Make sure the output format pointer is set
- rtp: Make sure priv_data is set before reading it
- videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
- get_bits: change the failure condition in init_get_bits
- mpegvideo: fix loop condition in draw_line()
- fate: update ref after rv30_loop_filter fix
- RV30: fix masking in rv30_loop_filter()
- libcdio: support recent cdio-paranoia
- Theora: Skip zero-sized headers
- H.264: add 3 pixels below for subpixel filter wait position
- H.264: fix ff_generate_sliding_window_mmcos() prototype
- H.264: don't clobber mmco opcode tables for non-first slice headers
- libx264: use the library specific default rc_initial_buffer_occupancy
- lavc: set the default rc_initial_buffer_occupancy
- lavc: introduce the convenience function init_get_bits8
- lavc: check for overflow in init_get_bits
- configure: enable pic for shared libs on AArch64
- zmbv: Reset the decoder on keyframe errors
- VC1 decoder: prevent a crash due missing pred_flag parameter
- matroska: Fix use after free
- VP3: Fix double free in vp3_decode_end()
- Fix a crash on windows platforms related to automatic stack alignment
in libavresample
- Fix memleaks in the Ogg demuxer. Related to CVE-2012-2882
version 1.2:
- VDPAU hardware acceleration through normal hwaccel
- SRTP support
- Error diffusion dither in Swscale
- Chained Ogg support
- Theora Midstream reconfiguration support
- EVRC decoder
- audio fade filter
- filtering audio with unknown channel layout
- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass
and treble audio filter
- improved showspectrum filter, with multichannel support and sox-like colors
- histogram filter
- tee muxer
- il filter ported from libmpcodecs
- support ID3v2 tags in ASF files
- encrypted TTA stream decoding support
- RF64 support in WAV muxer
- noise filter ported from libmpcodecs
- Subtitles character encoding conversion
- blend filter
- stereo3d filter ported from libmpcodecs
version 1.1:
@@ -36,13 +36,20 @@ Specifically, the GPL parts of FFmpeg are
- vf_hue.c
- vf_kerndeint.c
- vf_mp.c
- vf_noise.c
- vf_pp.c
- vf_smartblur.c
- vf_stereo3d.c
- vf_super2xsai.c
- vf_tinterlace.c
- vf_yadif.c
- vsrc_mptestsrc.c
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter --enable-version3 will activate this licensing option
for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
COPYING.GPLv3 to learn the exact legal terms that apply in this case.
There are a handful of files under other licensing terms, namely:
* The files libavcodec/jfdctfst.c, libavcodec/jfdctint_template.c and
@@ -52,11 +59,6 @@ There are a handful of files under other licensing terms, namely:
You must also indicate any changes including additions and deletions to
those three files in the documentation.
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter --enable-version3 will activate this licensing option
for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
COPYING.GPLv3 to learn the exact legal terms that apply in this case.
external libraries
@@ -449,7 +449,6 @@ Releases
1.1 Michael Niedermayer
1.0 Michael Niedermayer
If you want to maintain an older release, please contact us
GnuPG Fingerprints of maintainers and contributors
@@ -9,6 +9,7 @@ git:// at SHA1 553c9c77 on December 16th, 2012 (jya)
git:// at SHA1 057051b8 on February 17th, 2013 (jya) (release/1.1 branch)
git:// at SHA1 7c8beec4 on March 7th, 2013 (jya) (release/1.1 branch)
git:// at SHA1 fc7071cb on March 30th, 2013 (jya) (release/1.1 branch)
git:// at SHA1 33d699a4 on May 12th, 2013 (jya) (release/1.2 branch)
List of files modified from original FFmpeg:
@@ -50,7 +51,7 @@ libavformat/mpegts.c
libavformat/utils-mythtv.c <- new file
libavformat/rtpdec.c <- header change
libavformat/rtpdec_mpegts.c <- header change
libavformat/rtsp.c <- header change
libavformat/wtvdec.c <- header change
@@ -1 +1 @@
@@ -1 +1 @@
@@ -62,8 +62,8 @@
static int init_report(const char *env);
struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts, *codec_opts;
AVDictionary *swr_opts;
AVDictionary *format_opts, *codec_opts, *resample_opts;
const int this_year = 2013;
@@ -75,9 +75,6 @@ void init_opts(void)
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
swr_opts = swr_alloc();
void uninit_opts(void)
@@ -87,11 +84,10 @@ void uninit_opts(void)
sws_opts = NULL;
void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
@@ -478,6 +474,9 @@ int opt_default(void *optctx, const char *opt, const char *arg)
char opt_stripped[128];
const char *p;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class();
const AVClass *rc = avresample_get_class();
const AVClass *sc, *swr_class;
if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug"))
@@ -516,13 +515,23 @@ int opt_default(void *optctx, const char *opt, const char *arg)
swr_class = swr_get_class();
if (!consumed && av_opt_find(&swr_class, opt, NULL, 0,
int ret = av_opt_set(swr_opts, opt, arg, 0);
if (!consumed && (o=av_opt_find(&swr_class, opt, NULL, 0,
struct SwrContext *swr = swr_alloc();
int ret = av_opt_set(swr, opt, arg, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
av_dict_set(&swr_opts, opt, arg, FLAGS);
consumed = 1;
if ((o=av_opt_find(&rc, opt, NULL, 0,
av_dict_set(&resample_opts, opt, arg, FLAGS);
consumed = 1;
@@ -575,9 +584,11 @@ static void finish_group(OptionParseContext *octx, int group_idx,
g->swr_opts = swr_opts;
g->codec_opts = codec_opts;
g->format_opts = format_opts;
g->resample_opts = resample_opts;
codec_opts = NULL;
format_opts = NULL;
resample_opts = NULL;
sws_opts = NULL;
@@ -635,11 +646,11 @@ void uninit_parse_context(OptionParseContext *octx)
@@ -656,6 +667,7 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
const OptionGroupDef *groups, int nb_groups)
int optindex = 1;
int dashdash = -2;
/* perform system-dependent conversions for arguments list */
prepare_app_arguments(&argc, &argv);
@@ -670,8 +682,12 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt);
if (opt[0] == '-' && opt[1] == '-' && !opt[2]) {
dashdash = optindex;
/* unnamed group separators, e.g. output filename */
if (opt[0] != '-' || !opt[1]) {
if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) {
finish_group(octx, 0, opt);
av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name);
@@ -743,7 +759,7 @@ do { \
if (octx->cur_group.nb_opts || codec_opts || format_opts)
if (octx->cur_group.nb_opts || codec_opts || format_opts || resample_opts)
av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the "
@@ -1612,7 +1628,7 @@ int show_help(void *optctx, const char *opt, const char *arg)
int read_yesno(void)
int c = getchar();
int yesno = (toupper(c) == 'Y');
int yesno = (av_toupper(c) == 'Y');
while (c != '\n' && c != EOF)
c = getchar();
@@ -1733,10 +1749,8 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
if (!codec)
codec = s->oformat ? avcodec_find_encoder(codec_id)
: avcodec_find_decoder(codec_id);
if (!codec)
return NULL;
switch (codec->type) {
switch (st->codec->codec_type) {
prefix = 'v';
@@ -1848,12 +1862,6 @@ static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbu
av_log(s, AV_LOG_ERROR, "alloc_buffer: av_image_alloc() failed\n");
return ret;
/* XXX this shouldn't be needed, but some tests break without this line
* those decoders are buggy and need to be fixed.
* the following tests fail:
* cdgraphics, ansi
memset(buf->base[0], 128, ret);
avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) {
Oops, something went wrong.

0 comments on commit 9c728cb

Please sign in to comment.