From ba1927dda9a96476f3b0f56278349a596a1f8558 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Fri, 18 Mar 2011 18:10:32 +0100 Subject: [PATCH 1/7] partially rename FFmpeg to Libav update mailing list references and irc channels in configure (cherry picked from commit 070c5d0f3530c16c92b81f3f0de2943410367c00) --- CREDITS | 6 ++++-- Doxyfile | 2 +- INSTALL | 6 +++--- LICENSE | 20 ++++++++++---------- README | 2 +- cmdutils.c | 2 +- configure | 28 ++++++++++++++-------------- 7 files changed, 34 insertions(+), 32 deletions(-) diff --git a/CREDITS b/CREDITS index 404cf38d44..4a537786f0 100644 --- a/CREDITS +++ b/CREDITS @@ -1,5 +1,7 @@ -This file contains the name of the people who have contributed to -FFmpeg. The names are sorted alphabetically by last name. +This file contains the names of some of the people who have contributed to +Libav/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. Dénes Balatoni Michel Bardiaux diff --git a/Doxyfile b/Doxyfile index ee233b9d00..5e1a4055a3 100644 --- a/Doxyfile +++ b/Doxyfile @@ -17,7 +17,7 @@ # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = FFmpeg +PROJECT_NAME = Libav # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or diff --git a/INSTALL b/INSTALL index 8cd22bd441..2ed04ef2b9 100644 --- a/INSTALL +++ b/INSTALL @@ -2,10 +2,10 @@ 1) Type './configure' to create the configuration. A list of configure options is printed by running 'configure --help'. -'configure' can be launched from a directory different from the FFmpeg +'configure' can be launched from a directory different from the Libav sources to build the objects out of tree. To do this, use an absolute -path when launching 'configure', e.g. '/ffmpegdir/ffmpeg/configure'. +path when launching 'configure', e.g. '/libavdir/libav/configure'. -2) Then type 'make' to build FFmpeg. GNU Make 3.81 or later is required. +2) Then type 'make' to build Libav. GNU Make 3.81 or later is required. 3) Type 'make install' to install all binaries and libraries you built. diff --git a/LICENSE b/LICENSE index 668350b185..c6bcbe8efb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,17 +1,17 @@ -FFmpeg: +Libav: ------- -Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 +Most files in Libav are under the GNU Lesser General Public License version 2.1 or later (LGPL v2.1+). Read the file COPYING.LGPLv2.1 for details. Some other files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to -FFmpeg. +Libav. -Some optional parts of FFmpeg are licensed under the GNU General Public License +Some optional parts of Libav are licensed under the GNU General Public License version 2 or later (GPL v2+). See the file COPYING.GPLv2 for details. None of these parts are used by default, you have to explicitly pass --enable-gpl to -configure to activate them. In this case, FFmpeg's license changes to GPL v2+. +configure to activate them. In this case, Libav's license changes to GPL v2+. -Specifically, the GPL parts of FFmpeg are +Specifically, the GPL parts of Libav are - libpostproc - optional MMX optimizations for YUV to RGB colorspace conversion in @@ -37,14 +37,14 @@ external libraries: ------------------- Some external libraries, e.g. libx264, are under GPL and can be used in -conjunction with FFmpeg. They require --enable-gpl to be passed to configure +conjunction with Libav. They require --enable-gpl to be passed to configure as well. The OpenCORE external libraries are under the Apache License 2.0. That license is incompatible with the LGPL v2.1 and the GPL v2, but not with version 3 of -those licenses. So to combine the OpenCORE libraries with FFmpeg, the license +those licenses. So to combine the OpenCORE libraries with Libav, the license version needs to be upgraded by passing --enable-version3 to configure. -The nonfree external library libfaac can be hooked up in FFmpeg. You need to +The nonfree external library libfaac can be hooked up in Libav. You need to pass --enable-nonfree to configure to enable it. Employ this option with care -as FFmpeg then becomes nonfree and unredistributable. +as Libav then becomes nonfree and unredistributable. diff --git a/README b/README index e907e90223..6346cff926 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -FFmpeg README +Libav README ------------- 1) Documentation diff --git a/cmdutils.c b/cmdutils.c index 2349b7052e..23f0efeed6 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -341,7 +341,7 @@ static void maybe_print_config(const char *lib, const char *cfg) void show_banner(void) { - fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the FFmpeg developers\n", + fprintf(stderr, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the Libav developers\n", program_name, program_birth_year, this_year); fprintf(stderr, " built on %s %s with %s %s\n", __DATE__, __TIME__, CC_TYPE, CC_VERSION); diff --git a/configure b/configure index 0166829f77..3f5176ea39 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #!/bin/sh # -# FFmpeg configure script +# Libav configure script # # Copyright (c) 2000-2002 Fabrice Bellard # Copyright (c) 2005-2008 Diego Biurrun @@ -44,9 +44,9 @@ if test "$E1" != 0 || test "$E2" = 0; then echo "No compatible shell script interpreter found." echo "This configure script requires a POSIX-compatible shell" echo "such as bash or ksh." - echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH." + echo "THIS IS NOT A BUG IN LIBAV, DO NOT REPORT IT AS SUCH." echo "Instead, install a working POSIX-compatible shell." - echo "Disabling this configure test will create a broken FFmpeg." + echo "Disabling this configure test will create a broken Libav." if test "$BASH_VERSION" = '2.04.0(1)-release'; then echo "This bash version ($BASH_VERSION) is broken on your platform." echo "Upgrade to a later version if available." @@ -239,7 +239,7 @@ Advanced options (experts only): --malloc-prefix=PFX prefix malloc and related names with PFX --enable-sram allow use of on-chip SRAM -Developer options (useful when working on FFmpeg itself): +Developer options (useful when working on Libav itself): --disable-debug disable debugging symbols --enable-debug=LEVEL set the debug level [$debuglevel] --enable-gprof enable profiling with gprof [$gprof] @@ -275,8 +275,8 @@ die(){ cat < Date: Fri, 18 Mar 2011 18:01:41 +0100 Subject: [PATCH 2/7] release notes and changelog for 0.6.2 --- Changelog | 7 +++++++ RELEASE | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Changelog b/Changelog index 999a9e0f41..2e0a99c378 100644 --- a/Changelog +++ b/Changelog @@ -1,6 +1,13 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. +version 0.6.2: + +- Fix invalid reads in VC-1 decoding (related to CVE-2011-0723) +- Do not attempt to decode APE file with no frames + (adresses http://packetstorm.linuxsecurity.com/1103-exploits/vlc105-dos.txt) + + version 0.6.1: - fix autodetection of E-AC-3 substream samples diff --git a/RELEASE b/RELEASE index a8919cdf56..ddd02e03d1 100644 --- a/RELEASE +++ b/RELEASE @@ -121,3 +121,26 @@ HE-AAC v2 backport This release includes a backport of the AAC decoder from trunk, which enables proper playback of HE-AAC v2 media. + + +* 0.6.2 + +General notes +------------- + +This is a maintenance-only release that addresses a small number of security +and portability issues. Distributors and system integrators are encouraged +to update and share their patches against this branch. + +Security fixes +-------------- + +Programming errors in container and codec implementations may lead to +denial of service or the execution of arbitrary code if the user is +tricked into opening a malformed media file or stream. + +Affected and updated have been the implementations of the following +codecs and container formats: + + - VC1 decoder (Change related to CVE-2011-0723) + - APE decoder (cf. http://packetstorm.linuxsecurity.com/1103-exploits/vlc105-dos.txt) From 7fc5bffb542ed8c8bbb98f70e863be8b00326bd0 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Thu, 17 Mar 2011 02:54:12 +0100 Subject: [PATCH 3/7] configure: use dlltools instead of lib.exe This way building ffmpeg on mingw won't require windows specific tools (cherry picked from commit ec10a9ab461b26b96eff7bbbb8623f42d8ee04ad) Signed-off-by: Reinhard Tartler --- configure | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 3f5176ea39..14f00bce8e 100755 --- a/configure +++ b/configure @@ -2216,7 +2216,7 @@ case $target_os in SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)' + SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)' SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \ install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"; \ install -d "$(LIBDIR)"; \ @@ -2224,6 +2224,7 @@ case $target_os in SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" + dlltool="${cross_prefix}dlltool" enable dos_paths check_cflags -fno-common if ! enabled x86_64; then @@ -3002,6 +3003,7 @@ CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS ASFLAGS=$ASFLAGS CC_O=$CC_O +DLLTOOL=$dlltool LDFLAGS=$LDFLAGS FFSERVERLDFLAGS=$FFSERVERLDFLAGS SHFLAGS=$SHFLAGS From 79e0cbae33350437c30c65a1e2c2c8b41ef92c62 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Mon, 21 Mar 2011 20:22:51 +0100 Subject: [PATCH 4/7] Set the correct target for mingw64 dlltool That fixes .lib creation for the win64 target. (cherry picked from commit 417516f63f8a9ee214ee9fa6fcb483962ea0f096) Signed-off-by: Reinhard Tartler --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 14f00bce8e..a1afb0d0c1 100755 --- a/configure +++ b/configure @@ -2206,7 +2206,7 @@ case $target_os in LIBTARGET=i386 if enabled x86_64; then enable malloc_aligned - LIBTARGET=x64 + LIBTARGET="i386:x86-64" elif enabled arm; then LIBTARGET=arm fi From 52f9b632b57a64ff058018c9b886ce6e918bbda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Mon, 21 Mar 2011 22:41:38 +0200 Subject: [PATCH 5/7] configure: Add the -D parameter to the dlltool command This is required for the generated .lib file to actually be usable by MSVC. Signed-off-by: Luca Barbato (cherry picked from commit 77e41e047dc487e318a0a47e02cfa99d25459b8a) Signed-off-by: Reinhard Tartler --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index a1afb0d0c1..eb66ec4c0f 100755 --- a/configure +++ b/configure @@ -2216,7 +2216,7 @@ case $target_os in SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)' + SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \ install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"; \ install -d "$(LIBDIR)"; \ From 2b2856bac2012fe505ffd80f441db28c7fc31787 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Tue, 22 Mar 2011 20:57:36 +0100 Subject: [PATCH 6/7] Add missing dependencies for the AAC-HE backport for hardcoded tables Unbreaks compilation with --enable-hardcoded-tables --- Changelog | 5 +++++ libavcodec/Makefile | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Changelog b/Changelog index 2e0a99c378..bcf6428ce9 100644 --- a/Changelog +++ b/Changelog @@ -1,6 +1,11 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. +version 0.6.3: + +- fix compilation with --enable-hardcoded-tables + + version 0.6.2: - Fix invalid reads in VC-1 decoding (related to CVE-2011-0723) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 4547ef60ca..3dd24e7e12 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -645,7 +645,9 @@ $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF) $(M)./$< > $@ ifdef CONFIG_HARDCODED_TABLES -$(SUBDIR)aac.o: $(SUBDIR)cbrt_tables.h +$(SUBDIR)aacdec.o: $(SUBDIR)cbrt_tables.h +$(SUBDIR)aacps.o: $(SUBDIR)aacps_tables.h +$(SUBDIR)aactab.o: $(SUBDIR)aac_tables.h $(SUBDIR)dv.o: $(SUBDIR)dv_tables.h $(SUBDIR)mdct.o: $(SUBDIR)mdct_tables.h $(SUBDIR)mpegaudiodec.o: $(SUBDIR)mpegaudio_tables.h From b4eafa8b04802f45a710e712f2ec2676e0a77024 Mon Sep 17 00:00:00 2001 From: Michael Kostylev Date: Thu, 13 May 2010 10:02:04 +0000 Subject: [PATCH 7/7] Support writing 2d float arrays. Patch by Michael Kostylev, michael D kostylev A gmail Originally committed as revision 23105 to svn://svn.ffmpeg.org/ffmpeg/trunk (cherry picked from commit 56b37cd1c7f3b5e5a3ece043c7ffccf70874cfb1) Unbreaks compilation since the HE-AAC v2 backport Signed-off-by: Reinhard Tartler --- libavcodec/tableprint.c | 1 + libavcodec/tableprint.h | 1 + 2 files changed, 2 insertions(+) diff --git a/libavcodec/tableprint.c b/libavcodec/tableprint.c index e39606bb15..0f422eb888 100644 --- a/libavcodec/tableprint.c +++ b/libavcodec/tableprint.c @@ -33,6 +33,7 @@ WRITE_1D_FUNC(float, float, "%.18e", 3) WRITE_2D_FUNC(int8, int8_t) WRITE_2D_FUNC(uint8, uint8_t) WRITE_2D_FUNC(uint32, uint32_t) +WRITE_2D_FUNC(float, float) void write_fileheader(void) { printf("/* This file was generated by libavcodec/tableprint */\n"); diff --git a/libavcodec/tableprint.h b/libavcodec/tableprint.h index d81af97e95..76ab8028b5 100644 --- a/libavcodec/tableprint.h +++ b/libavcodec/tableprint.h @@ -66,6 +66,7 @@ void write_float_array (const float *, int); void write_int8_2d_array (const void *, int, int); void write_uint8_2d_array (const void *, int, int); void write_uint32_2d_array(const void *, int, int); +void write_float_2d_array (const void *, int, int); /** \} */ // end of printfuncs group /** Write a standard file header */