]> git.sesse.net Git - mlt/commitdiff
Fixup local ffmpeg build.
authorDan Dennedy <dan@dennedy.org>
Sun, 20 Jun 2010 19:02:31 +0000 (12:02 -0700)
committerDan Dennedy <dan@dennedy.org>
Sun, 20 Jun 2010 19:02:31 +0000 (12:02 -0700)
Set PIC compiler flag, make libavdevice optional, and set recommended
version to 0.6 branch.

src/modules/avformat/Makefile
src/modules/avformat/configure
src/modules/avformat/factory.c

index cdb1b9f5c71aea2923ed9b0376d9e20ada2c5a3f..75d84668c2b81f085ff6d204aae8a65ba3654e9d 100644 (file)
@@ -7,7 +7,6 @@ include config.mak
 LDFLAGS += -lavformat$(AVFORMAT_SUFFIX)
 LDFLAGS += -lavcodec$(AVFORMAT_SUFFIX)
 LDFLAGS += -lavutil$(AVFORMAT_SUFFIX)
-LDFLAGS += -lavdevice$(AVFORMAT_SUFFIX)
 LDFLAGS += $(EXTRA_LIBS)
 
 ifndef CODECS
@@ -44,11 +43,15 @@ CFLAGS += -DSWSCALE
 LDFLAGS += -lswscale$(AVFORMAT_SUFFIX)
 endif
 
+ifdef DEVICES
+CFLAGS += -DAVDEVICE
+LDFLAGS += -lavdevice$(AVFORMAT_SUFFIX)
+endif
+
 ifdef LOCAL_FFMPEG
 LOCAL_FFMPEG_OBJS = ffmpeg/libavformat/libavformat$(AVFORMAT_SUFFIX) \
                     ffmpeg/libavcodec/libavcodec$(AVFORMAT_SUFFIX) \
-                    ffmpeg/libavutil/libavutil$(AVFORMAT_SUFFIX) \
-                    ffmpeg/libavutil/libavdevice$(AVFORMAT_SUFFIX)
+                    ffmpeg/libavutil/libavutil$(AVFORMAT_SUFFIX)
 endif
 
 SRCS := $(OBJS:.o=.c)
index a27d0cc888b840a0c85c57d2f89ddfe27271803a..c76d45b8cc47f6c59de89cc5608b03f1a7f19d56 100755 (executable)
@@ -3,7 +3,7 @@
 # Determine whether to recommend/use the HEAD revision of FFmpeg (unreleased)
 # or a specific revision based upon whether the last digit of our version
 # is even or odd. An odd MLT version number always represents unreleased.
-svn_rev="21322"
+svn_rev="0.6"
 micro_version=$(echo $version | cut -d . -f 3)
 odd_version=$(($micro_version % 2))
 [ "$odd_version" -eq "1" ] && svn_rev="HEAD"
@@ -24,7 +24,7 @@ FFmpeg/avformat options:
   --avformat-no-codecs    - Disable the producer and consumer to avoid the FFmpeg codecs
   --avformat-no-filters   - Disable the filters to make a codecs+muxers-only plugin
 
-  NOTE: The recommended version of FFmpeg is $([ "$svn_rev" = "0.5" ] && echo $svn_rev || echo SVN-r$svn_rev).
+  NOTE: The recommended version of FFmpeg is $([ "$svn_rev" = "0.6" ] && echo $svn_rev || echo SVN-r$svn_rev).
 
 EOF
 
@@ -62,6 +62,7 @@ else
        export swscale=
        export codecs=true
        export filters=true
+       export devices=true
        pkg-config x11 > /dev/null 2>&1
        export x11=$?
 
@@ -80,6 +81,7 @@ else
                        --avformat-swscaler )   swscale=true ;;
                        --avformat-no-codecs )  codecs=false ;;
                        --avformat-no-filters ) filters=false ;;
+                       --avformat-no-devices ) devices=false ;;
                esac
        done
 
@@ -96,22 +98,28 @@ else
                        echo
                        echo "Checking out ffmpeg/avformat revision $svn_rev - no password required"
                        echo
-                       if [ "$svn_rev" = "0.5" ]; then
+                       if [ "$svn_rev" = "0.6" ]; then
                                svn checkout svn://svn.mplayerhq.hu/ffmpeg/branches/$svn_rev ffmpeg
                        else
                                svn checkout -r $svn_rev svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
                        fi
                fi
-               [ -d "ffmpeg" ] && ( cd ffmpeg ; ./configure $enable_gpl $enable_swscale $svn_ffmpeg_extra )
+               [ "$devices" = "false" ] && disable_devices="--disable-devices"
+               [ -d "ffmpeg" ] && ( cd ffmpeg ; ./configure $enable_gpl $disable_devices $enable_swscale $svn_ffmpeg_extra --extra-cflags=-fPIC )
                #[ ! -f "ffmpeg/ffmpeg.patch" ] && ( cd ffmpeg ; cp ../ffmpeg.patch . ; patch -p0 < ffmpeg.patch )
-               echo "CFLAGS+=-I`pwd`/ffmpeg -I`pwd`/ffmpeg/libavformat -I`pwd`/ffmpeg/libavcodec -I`pwd`/ffmpeg/libavutil -I`pwd`/ffmpeg/libavdevice" >> config.mak
-               echo "LDFLAGS+=-L`pwd`/ffmpeg/libavformat -L`pwd`/ffmpeg/libavcodec -L`pwd`/ffmpeg/libavutil -L`pwd`/ffmpeg/libavdevice" >> config.mak
-               if [ "$swscale" != "" ] || [ "$svn_rev" = "HEAD" ]
+               echo "CFLAGS+=-I`pwd`/ffmpeg -I`pwd`/ffmpeg/libavformat -I`pwd`/ffmpeg/libavcodec -I`pwd`/ffmpeg/libavutil" >> config.mak
+               echo "LDFLAGS+=-L`pwd`/ffmpeg/libavformat -L`pwd`/ffmpeg/libavcodec -L`pwd`/ffmpeg/libavutil" >> config.mak
+               if [ "$swscale" != "" ] || [ "$svn_rev" = "HEAD" ] || [ "$svn_rev" = "0.6" ]
                then
                        echo "CFLAGS+=-I`pwd`/ffmpeg/libswscale" >> config.mak
                        echo "LDFLAGS+=-L`pwd`/ffmpeg/libswscale" >> config.mak
                        echo "SWSCALE=1" >> config.mak
                fi
+               if [ "$devices" = "true" ]
+               then
+                       echo "CFLAGS+=-I`pwd`/ffmpeg/libavdevice" >> config.mak
+                       echo "LDFLAGS+=-L`pwd`/ffmpeg/libavdevice" >> config.mak
+               fi
                [ $targetos = "Darwin" ] &&
                        echo "LDFLAGS+=-single_module" >> config.mak
                echo "LOCAL_FFMPEG=1" >> config.mak
@@ -124,8 +132,8 @@ else
        then 
                if [ -d "$static_ffmpeg" ]
                then
-                       echo "CFLAGS+=-I$static_ffmpeg/libavformat -I$static_ffmpeg/libavcodec -I$static_ffmpeg/libavutil -I$static_ffmpeg/libavdevice" >> config.mak
-                       echo "LDFLAGS+=-L$static_ffmpeg/libavformat -L$static_ffmpeg/libavcodec -L$static_ffmpeg/libavutil -L$static_ffmpeg/libavdevice" >> config.mak
+                       echo "CFLAGS+=-I$static_ffmpeg/libavformat -I$static_ffmpeg/libavcodec -I$static_ffmpeg/libavutil" >> config.mak
+                       echo "LDFLAGS+=-L$static_ffmpeg/libavformat -L$static_ffmpeg/libavcodec -L$static_ffmpeg/libavutil" >> config.mak
                        [ $targetos = "Darwin" ] &&
                                echo "LDFLAGS+=-single_module" >> config.mak
                        if [ "$swscale" != "" ]
@@ -134,6 +142,11 @@ else
                                echo "LDFLAGS+=-L$static_ffmpeg/libswscale" >> config.mak
                                echo "SWSCALE=1" >> config.mak
                        fi
+                       if [ "$devices" = "true" ]
+                       then
+                               echo "CFLAGS+=-I$static_ffmpeg/libavdevice" >> config.mak
+                               echo "LDFLAGS+=-L$static_ffmpeg/libavdevice" >> config.mak
+                       fi
                        echo "LDFLAGS+=-Wl,-Bsymbolic" >> config.mak
                        extra_libs="$extra_libs -lm -lz -lbz2"
                        
@@ -147,8 +160,13 @@ else
        elif [ "$shared_ffmpeg" != "" ]
        then
                echo "PREFIX=$shared_ffmpeg" >> config.mak
-               echo "CFLAGS+=$(pkg-config --cflags libavformat libavdevice) $TMP_CFLAGS" >> config.mak
-               echo "LDFLAGS+=$(pkg-config --libs-only-L libavformat libavdevice)" >> config.mak
+               echo "CFLAGS+=$(pkg-config --cflags libavformat) $TMP_CFLAGS" >> config.mak
+               echo "LDFLAGS+=$(pkg-config --libs-only-L libavformat)" >> config.mak
+               if [ "$devices" = "true" ]
+               then
+                       echo "CFLAGS+=$(pkg-config --cflags libavdevice) $TMP_CFLAGS" >> config.mak
+                       echo "LDFLAGS+=$(pkg-config --libs-only-L libavdevice)" >> config.mak
+               fi
                [ -d "$shared_ffmpeg/include/ffmpeg/libavformat" ] &&
                        echo "CFLAGS+=-I$shared_ffmpeg/include/ffmpeg/libavformat -I$shared_ffmpeg/include/ffmpeg/libavcodec -I$shared_ffmpeg/include/ffmpeg/libavdevice" >> config.mak
                [ -d "$shared_ffmpeg/include/libavformat" ] &&
@@ -176,6 +194,7 @@ else
        echo "AVFORMAT_SUFFIX=$avformat_suffix" >> config.mak
        [ "$codecs" = "true" ] && echo "CODECS=1" >> config.mak
        [ "$filters" = "true" ] && echo "FILTERS=1" >> config.mak
+       [ "$devices" = "true" ] && echo "DEVICES=1" >> config.mak
        exit 0
 
 fi
index 2bc28f1cc23ee246997a59ad8cbdbb56fb0afb57..eec004ba7f2722d4cbc00dbd26730e14f283ab0d 100644 (file)
@@ -33,7 +33,9 @@ extern mlt_producer producer_avformat_init( mlt_profile profile, const char *ser
 
 // ffmpeg Header files
 #include <avformat.h>
+#ifdef AVDEVICE
 #include <avdevice.h>
+#endif
 
 // A static flag used to determine if avformat has been initialised
 static int avformat_initialised = 0;
@@ -90,7 +92,9 @@ static void avformat_init( )
                avformat_initialised = 1;
                pthread_mutex_init( &avformat_mutex, NULL );
                av_register_all( );
+#ifdef AVDEVICE
                avdevice_register_all();
+#endif
                mlt_factory_register_for_clean_up( NULL, avformat_destroy );
                av_log_set_level( mlt_log_get_level() );
        }