Hi, regarding the problems on building cinelerra on ppc arches, I remembered the crazy idea I had some time ago : Leave the possibility to not build ffmpeg again and link to it instead.
So, I wrote two patches that are attached, the externalffmpeg.patch adds the configure check to pass --with-external-ffmpeg, if nothing is passed to the ./configure, it is just as it was before. The typo.patch is a small fix, a typo was introduced for a #define in some old ffmpeg versions and then they corrected it, this patch fixes this typo in cinelerra. This is needed because, otherwise, when including ffmpeg headers from the system, compilation will fail because it cannot find the defined constant. I'd really like to have the possibility to not build again ffmpeg, in the future this might make possible to build cinelerra on other arches than x86, amd64 & ppc. So far this works well for me on amd64. Regards, Alexis.
--- cinelerra-svn-checkout/configure.in 2006-10-27 07:49:05.482831480 +0200 +++ cinelerra-external-ffmpeg/configure.in 2006-10-27 08:48:00.339987883 +0200 @@ -14,6 +14,8 @@ AC_LANG_C AC_PROG_CXX +AM_PROG_AS + AC_ENABLE_SHARED AC_DISABLE_STATIC AC_PROG_LIBTOOL @@ -394,6 +378,26 @@ AC_SUBST(OPENGL_LIBS) # END OpenGL +############ External ffmpeg + + +AC_ARG_WITH([external-ffmpeg], AC_HELP_STRING([--with-external-ffmpeg], [use external ffmpeg library])) + +if test "x$with_external_ffmpeg" = "xyes"; then + PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc]) + FFMPEG_FOLDER="" +else + FFMPEG_FOLDER=ffmpeg + FFMPEG_CFLAGS="-I$(srcdir)/ffmpeg/libavcodec" + FFMPEG_LIBS="ffmpeg/libavcodec/libavcodec.la" +fi + +AC_SUBST(FFMPEG_FOLDER) +AC_SUBST(FFMPEG_CFLAGS) +AC_SUBST(FFMPEG_LIBS) + +# END External ffmpeg + ############## .png TO .o CONVERSION AC_CHECK_TOOL(OBJCOPY, objcopy) --- cinelerra-svn-checkout/quicktime/Makefile.am 2006-09-10 11:41:23.089983933 +0200 +++ cinelerra-external-ffmpeg/quicktime/Makefile.am 2006-10-27 08:43:46.535909148 +0200 @@ -1,4 +1,4 @@ -SUBDIRS = encore50 ffmpeg +SUBDIRS = encore50 @FFMPEG_FOLDER@ lib_LTLIBRARIES = libquicktimehv.la @@ -10,12 +10,12 @@ $(MJPEG_CFLAGS) \ $(LIBDV_CFLAGS) \ -DENCORE_INCLUDE=\"encore50/encore.h\" \ - -I$(srcdir)/ffmpeg/libavcodec + @FFMPEG_CFLAGS@ libquicktimehv_la_LDFLAGS = -version-info 1:0:0 -release 1.6.0 -Wl,--no-undefined libquicktimehv_la_LIBADD = \ - ffmpeg/libavcodec/libavcodec.la \ + @FFMPEG_LIBS@ \ $(XIPH_LIBS) \ -lmp3lame \ $(FAAD_LIBS) \
--- cinelerra-svn-checkout/quicktime/mpeg4.c 2006-10-20 21:27:40.181569638 +0200
+++ cinelerra-external-ffmpeg/quicktime/mpeg4.c 2006-10-27 08:51:33.593001333 +0200
@@ -671,7 +671,7 @@
context->b_quant_factor = 1.25;
context->b_quant_offset = 1.25;
- context->error_resilience = FF_ER_CAREFULL;
+ context->error_resilience = FF_ER_CAREFUL;
context->error_concealment = 3;
context->frame_skip_cmp = FF_CMP_DCTMAX;
context->ildct_cmp = FF_CMP_VSAD;
--- cinelerra-svn-checkout/quicktime/ffmpeg/libavcodec/avcodec.h 2006-09-10 11:41:18.918902957 +0200
+++ cinelerra-external-ffmpeg/quicktime/ffmpeg/libavcodec/avcodec.h 2006-10-27 08:50:54.561601215 +0200
@@ -1000,7 +1000,7 @@
* - decoding: set by user
*/
int error_resilience;
-#define FF_ER_CAREFULL 1
+#define FF_ER_CAREFUL 1
#define FF_ER_COMPLIANT 2
#define FF_ER_AGGRESSIVE 3
#define FF_ER_VERY_AGGRESSIVE 4
--- cinelerra-svn-checkout/quicktime/ffmpeg/ffmpeg.c 2006-09-10 11:41:20.606531118 +0200
+++ cinelerra-external-ffmpeg/quicktime/ffmpeg/ffmpeg.c 2006-10-27 08:51:05.539182498 +0200
@@ -179,7 +179,7 @@
static int do_interlace_dct = 0;
static int do_interlace_me = 0;
static int workaround_bugs = FF_BUG_AUTODETECT;
-static int error_resilience = FF_ER_CAREFULL;
+static int error_resilience = FF_ER_CAREFUL;
static int error_concealment = 3;
static int dct_algo = 0;
static int idct_algo = 0;
--- cinelerra-svn-checkout/quicktime/ffmpeg/ffplay.c 2006-09-10 11:41:20.646522306 +0200
+++ cinelerra-external-ffmpeg/quicktime/ffmpeg/ffplay.c 2006-10-27 08:51:13.497429039 +0200
@@ -197,7 +197,7 @@
static enum AVDiscard skip_frame= AVDISCARD_DEFAULT;
static enum AVDiscard skip_idct= AVDISCARD_DEFAULT;
static enum AVDiscard skip_loop_filter= AVDISCARD_DEFAULT;
-static int error_resilience = FF_ER_CAREFULL;
+static int error_resilience = FF_ER_CAREFUL;
static int error_concealment = 3;
/* current context */
pgp0AYOb6nTI9.pgp
Description: PGP signature
