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 */

Attachment: pgp0AYOb6nTI9.pgp
Description: PGP signature

Reply via email to