[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14408] trunk/blender/extern: == FFMPEG ==
Peter Schlaile
peter at schlaile.de
Sun Apr 13 17:17:19 CEST 2008
Revision: 14408
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14408
Author: schlaile
Date: 2008-04-13 17:17:06 +0200 (Sun, 13 Apr 2008)
Log Message:
-----------
== FFMPEG ==
Added H264-encoding support using libx264.
Beware: it currently only works with scons and it needs nasm or yasm as
an additional dependency!
Modified Paths:
--------------
trunk/blender/extern/SConscript
trunk/blender/extern/ffmpeg/SConscript
trunk/blender/extern/ffmpeg/configure
trunk/blender/extern/ffmpeg/libavcodec/libx264.c
trunk/blender/extern/ffmpeg/libswscale/yuv2rgb_altivec.c
trunk/blender/extern/ffmpeg/patches/README
Added Paths:
-----------
trunk/blender/extern/x264/
trunk/blender/extern/x264/AUTHORS
trunk/blender/extern/x264/COPYING
trunk/blender/extern/x264/Makefile
trunk/blender/extern/x264/common/
trunk/blender/extern/x264/common/amd64/
trunk/blender/extern/x264/common/amd64/amd64inc.asm
trunk/blender/extern/x264/common/amd64/cpu-a.asm
trunk/blender/extern/x264/common/amd64/dct-a.asm
trunk/blender/extern/x264/common/amd64/deblock-a.asm
trunk/blender/extern/x264/common/amd64/mc-a.asm
trunk/blender/extern/x264/common/amd64/mc-a2.asm
trunk/blender/extern/x264/common/amd64/pixel-a.asm
trunk/blender/extern/x264/common/amd64/pixel-sse2.asm
trunk/blender/extern/x264/common/amd64/predict-a.asm
trunk/blender/extern/x264/common/amd64/quant-a.asm
trunk/blender/extern/x264/common/bs.h
trunk/blender/extern/x264/common/cabac.c
trunk/blender/extern/x264/common/cabac.h
trunk/blender/extern/x264/common/clip1.h
trunk/blender/extern/x264/common/common.c
trunk/blender/extern/x264/common/common.h
trunk/blender/extern/x264/common/cpu.c
trunk/blender/extern/x264/common/cpu.h
trunk/blender/extern/x264/common/dct.c
trunk/blender/extern/x264/common/dct.h
trunk/blender/extern/x264/common/display-x11.c
trunk/blender/extern/x264/common/display.h
trunk/blender/extern/x264/common/frame.c
trunk/blender/extern/x264/common/frame.h
trunk/blender/extern/x264/common/i386/
trunk/blender/extern/x264/common/i386/cpu-a.asm
trunk/blender/extern/x264/common/i386/dct-a.asm
trunk/blender/extern/x264/common/i386/dct.h
trunk/blender/extern/x264/common/i386/deblock-a.asm
trunk/blender/extern/x264/common/i386/i386inc.asm
trunk/blender/extern/x264/common/i386/mc-a.asm
trunk/blender/extern/x264/common/i386/mc-a2.asm
trunk/blender/extern/x264/common/i386/mc-c.c
trunk/blender/extern/x264/common/i386/mc.h
trunk/blender/extern/x264/common/i386/pixel-a.asm
trunk/blender/extern/x264/common/i386/pixel-sse2.asm
trunk/blender/extern/x264/common/i386/pixel.h
trunk/blender/extern/x264/common/i386/predict-a.asm
trunk/blender/extern/x264/common/i386/predict-c.c
trunk/blender/extern/x264/common/i386/predict.h
trunk/blender/extern/x264/common/i386/quant-a.asm
trunk/blender/extern/x264/common/i386/quant.h
trunk/blender/extern/x264/common/macroblock.c
trunk/blender/extern/x264/common/macroblock.h
trunk/blender/extern/x264/common/mc.c
trunk/blender/extern/x264/common/mc.h
trunk/blender/extern/x264/common/mdate.c
trunk/blender/extern/x264/common/osdep.h
trunk/blender/extern/x264/common/pixel.c
trunk/blender/extern/x264/common/pixel.h
trunk/blender/extern/x264/common/ppc/
trunk/blender/extern/x264/common/ppc/dct.c
trunk/blender/extern/x264/common/ppc/dct.h
trunk/blender/extern/x264/common/ppc/deblock.c
trunk/blender/extern/x264/common/ppc/mc.c
trunk/blender/extern/x264/common/ppc/mc.h
trunk/blender/extern/x264/common/ppc/pixel.c
trunk/blender/extern/x264/common/ppc/pixel.h
trunk/blender/extern/x264/common/ppc/ppccommon.h
trunk/blender/extern/x264/common/ppc/predict.c
trunk/blender/extern/x264/common/ppc/predict.h
trunk/blender/extern/x264/common/ppc/quant.c
trunk/blender/extern/x264/common/ppc/quant.h
trunk/blender/extern/x264/common/predict.c
trunk/blender/extern/x264/common/predict.h
trunk/blender/extern/x264/common/quant.c
trunk/blender/extern/x264/common/quant.h
trunk/blender/extern/x264/common/set.c
trunk/blender/extern/x264/common/set.h
trunk/blender/extern/x264/common/sparc/
trunk/blender/extern/x264/common/sparc/pixel.asm
trunk/blender/extern/x264/common/sparc/pixel.h
trunk/blender/extern/x264/common/visualize.c
trunk/blender/extern/x264/common/visualize.h
trunk/blender/extern/x264/common/vlc.h
trunk/blender/extern/x264/config.guess
trunk/blender/extern/x264/configure
trunk/blender/extern/x264/encoder/
trunk/blender/extern/x264/encoder/analyse.c
trunk/blender/extern/x264/encoder/analyse.h
trunk/blender/extern/x264/encoder/cabac.c
trunk/blender/extern/x264/encoder/cavlc.c
trunk/blender/extern/x264/encoder/encoder.c
trunk/blender/extern/x264/encoder/eval.c
trunk/blender/extern/x264/encoder/macroblock.c
trunk/blender/extern/x264/encoder/macroblock.h
trunk/blender/extern/x264/encoder/me.c
trunk/blender/extern/x264/encoder/me.h
trunk/blender/extern/x264/encoder/ratecontrol.c
trunk/blender/extern/x264/encoder/ratecontrol.h
trunk/blender/extern/x264/encoder/rdo.c
trunk/blender/extern/x264/encoder/set.c
trunk/blender/extern/x264/encoder/set.h
trunk/blender/extern/x264/encoder/slicetype.c
trunk/blender/extern/x264/extras/
trunk/blender/extern/x264/extras/getopt.c
trunk/blender/extern/x264/extras/getopt.h
trunk/blender/extern/x264/extras/stdint.h
trunk/blender/extern/x264/x264.h
Modified: trunk/blender/extern/SConscript
===================================================================
--- trunk/blender/extern/SConscript 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/SConscript 2008-04-13 15:17:06 UTC (rev 14408)
@@ -16,7 +16,8 @@
SConscript(['verse/dist/SConstruct'])
if env['WITH_BF_FFMPEG'] and env['BF_FFMPEG_LIB'] == '':
- SConscript(['ffmpeg/SConscript']);
+ SConscript(['x264/SConscript'])
+ SConscript(['ffmpeg/SConscript'])
if env['OURPLATFORM'] == 'linux2':
- SConscript(['binreloc/SConscript']);
\ No newline at end of file
+ SConscript(['binreloc/SConscript']);
Modified: trunk/blender/extern/ffmpeg/SConscript
===================================================================
--- trunk/blender/extern/ffmpeg/SConscript 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/ffmpeg/SConscript 2008-04-13 15:17:06 UTC (rev 14408)
@@ -6,10 +6,14 @@
root = "extern/ffmpeg"
if env['OURPLATFORM'] == 'win32-mingw':
- ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads"
+ ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads --enable-libx264"
else:
- ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-memalign-hack"
+ ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-memalign-hack --enable-libx264"
+extra_variables = { }
+extra_variables["CONFIG_LIBX264"] = "yes"
+extra_includes = [ "../x264" ]
+
import sys
import os
import re
@@ -75,7 +79,7 @@
return
def getmakevars(filenames):
- variables = { }
+ variables = extra_variables.copy()
for filename in filenames:
fp = open(filename)
print "Processing makefile: " + filename
@@ -90,7 +94,7 @@
if not os.path.isfile(root + "/config.mak"):
os.chdir(root);
- os.system('sh configure ' + ffmpeg_switches)
+ os.system("sh -c './configure " + ffmpeg_switches + "'")
os.chdir("../..");
else:
print "(skipped, config.mak already exists)"
@@ -126,7 +130,7 @@
if env['OURPLATFORM'] in ['win32-mingw', 'win32-vc' , 'darwin'] :
defs = "HAVE_AV_CONFIG_H _ISOC9X_SOURCE"
else :
- defs = "HAVE_AV_CONFIG_H _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _ISOC9X_SOURCE"
+ defs = "HAVE_AV_CONFIG_H _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _ISOC9X_SOURCE"
cflags = ""
if "CFLAGS" in vars:
@@ -146,7 +150,7 @@
root + "/include/ffmpeg/" + h)
ff_env.BlenderLib (libname="extern_" + lib, sources=sources,
- includes=["."] + all_libs,
+ includes=["."] + all_libs + extra_includes,
defines=Split(defs),
libtype=['core', 'intern', 'player'],
priority = [5, 5, 200],
Modified: trunk/blender/extern/ffmpeg/configure
===================================================================
--- trunk/blender/extern/ffmpeg/configure 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/ffmpeg/configure 2008-04-13 15:17:06 UTC (rev 14408)
@@ -1572,7 +1572,7 @@
enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg
enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
-enabled libx264 && require x264 x264.h x264_encoder_open -lx264
+# enabled libx264 && require x264 x264.h x264_encoder_open -lx264
enabled libxvid && require Xvid xvid.h xvid_global -lxvidcore
enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
Modified: trunk/blender/extern/ffmpeg/libavcodec/libx264.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/libx264.c 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/ffmpeg/libavcodec/libx264.c 2008-04-13 15:17:06 UTC (rev 14408)
@@ -265,8 +265,10 @@
}
x4->enc = x264_encoder_open(&x4->params);
- if(!x4->enc)
- return -1;
+ if(!x4->enc) {
+ av_log(avctx, AV_LOG_ERROR, "FFMPEG: X264 encoder open failed!\n");
+ return -1;
+ }
avctx->coded_frame = &x4->out_pic;
Modified: trunk/blender/extern/ffmpeg/libswscale/yuv2rgb_altivec.c
===================================================================
--- trunk/blender/extern/ffmpeg/libswscale/yuv2rgb_altivec.c 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/ffmpeg/libswscale/yuv2rgb_altivec.c 2008-04-13 15:17:06 UTC (rev 14408)
@@ -423,10 +423,8 @@
vi += 8; \
\
} \
- \
outo += (outstrides[0])>>4; \
oute += (outstrides[0])>>4; \
- \
ui += instrides_scl[1]; \
vi += instrides_scl[2]; \
y1i += instrides_scl[0]; \
Modified: trunk/blender/extern/ffmpeg/patches/README
===================================================================
--- trunk/blender/extern/ffmpeg/patches/README 2008-04-13 15:14:32 UTC (rev 14407)
+++ trunk/blender/extern/ffmpeg/patches/README 2008-04-13 15:17:06 UTC (rev 14408)
@@ -5,4 +5,19 @@
- MMX acceleration for the YUV -> BGRA32 transformation.
- Bugfix for swscale, that screwed up RGB -> RGB32 with RAW AVIs
+Additionally:
+- To make ffmpeg work with scons, you have to disable the libx264 library
+ test! (or you have to install libx264 seperately, your choice)
+
+ change
+
+ enabled libx264 && require x264 x264.h x264_encoder_open -lx264
+
+ into
+
+ # enabled libx264 && require x264 x264.h x264_encoder_open -lx264
+
+ within configure
+
+
-- Peter
\ No newline at end of file
Added: trunk/blender/extern/x264/AUTHORS
===================================================================
--- trunk/blender/extern/x264/AUTHORS (rev 0)
+++ trunk/blender/extern/x264/AUTHORS 2008-04-13 15:17:06 UTC (rev 14408)
@@ -0,0 +1,111 @@
+# Contributors to x264
+#
+# The format of this file was inspired by the Linux kernel CREDITS file.
+# Authors are listed alphabetically.
+#
+# The fields are: name (N), email (E), web-address (W), CVS account login (C),
+# PGP key ID and fingerprint (P), description (D), and snail-mail address (S).
+
+N: Alex Izvorski
+E: aizvorski AT gmail DOT com
+D: x86 asm (sse2)
+
+N: Alex Wright
+E: alexw0885 AT hotmail DOT com
+D: Motion estimation (subpel and mixed refs)
+D: B-RDO
+
+N: Andrew Dunstan
+D: win64 asm port
+
+N: bobololo
+D: Avisynth input
+D: MP4 muxing
+
+N: Christian Heine
+E: sennindemokrit AT gmx DOT net
+D: x86 asm
+
+N: Placeholder
+D: Altivec optimizations
+
+N: Eric Petit
+E: titer AT videolan DOT org
+C: titer
+D: Altivec asm
+D: BeOS and MacOS X ports.
+S: France
+
+N: Francesco Corriga
+D: VfW
+
+N: Guillaume Poirier
+E: gpoirier CHEZ mplayerhq POINT hu
+D: Altivec optimizations
+S: Brittany, France
+
+N: Justin Clay
+E: justin_clay AT hotmail DOT com
+C: wheatgerm
+D: Inital work on VfW
+S: Nova Scotia, Canada
+
+N: Laurent Aimar
+E: fenrir AT via.ecp DOT fr
+C: fenrir
+D: Intial import, former maintainer
+D: x86 asm (mmx/mmx2)
+S: France
+
+N: Loren Merritt
+E: lorenm AT u.washington DOT edu
+C: pengvado
+D: maintainer
+D: All areas of encoder analysis and algorithms
+D: Motion estimation, rate control, macroblock & frame decisions, RDO, etc.
+D: Multithreading
+D: x86 and x86_64 asm (mmx/mmx2/sse2)
+S: USA
+
+N: Mans Rullgard
+E: mru AT inprovide DOT com
+C: mru
+D: Rate control
+S: Southampton, UK
+
+N: Michael Niedermayer
+E: michaelni AT gmx DOT at
+D: Rate control
+
+N: Mike Matsnev
+E: mike AT po DOT cs DOT msu DOT su
+D: Matroska muxing
+
+N: Min Chen
+E: chenm001 AT 163 DOT com
+C: chenm001
+D: Win32/VC 6.0 port
+D: gcc asm to nasm conversion
+D: VfW
+S: China
+
+N: Phil Jensen
+E: philj AT csufresno DOT edu
+D: SPARC asm
+
+N: Radek Czyz
+E: radoslaw AT syskin DOT cjb DOT net
+D: Cached motion compensation
+
+N: Riccardo Stievano
+E: walkunafraid AT tin DOT it
+D: VfW
+
+N: Tuukka Toivonen
+E: tuukkat AT ee DOT oulu DOT fi
+D: Visualization
+
+N: Vincent Torri
+E: Vincent DOT Torri AT iecn DOT u-nancy DOT fr
+D: GTK frontend
+
Added: trunk/blender/extern/x264/COPYING
===================================================================
--- trunk/blender/extern/x264/COPYING (rev 0)
+++ trunk/blender/extern/x264/COPYING 2008-04-13 15:17:06 UTC (rev 14408)
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list