AVISynth support, patch by Steve Lhomme % slhomme A divxcorp P com %
authorSteve L'Homme <slhomme@divxcorp.com>
Tue, 29 Aug 2006 07:34:58 +0000 (07:34 +0000)
committerGuillaume Poirier <gpoirier@mplayerhq.hu>
Tue, 29 Aug 2006 07:34:58 +0000 (07:34 +0000)
Original Thread:
Date: Aug 16, 2006 11:45 PM
Subject: [Ffmpeg-devel] [PATCH] AVISynth support

Originally committed as revision 6122 to svn://svn.ffmpeg.org/ffmpeg/trunk

Changelog
configure
libavformat/Makefile
libavformat/allformats.c
libavformat/allformats.h

index a3c89dd..bfccb86 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -54,6 +54,7 @@ version <next>
 - MXF demuxer
 - VC-1/WMV3/WMV9 video decoder
 - MacIntel support
+- AVISynth support
 
 version 0.4.9-pre1:
 
index 01f7678..3f61ad8 100755 (executable)
--- a/configure
+++ b/configure
@@ -58,6 +58,7 @@ show_help(){
   echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
   echo "                           and libraw1394 [default=no]"
   echo "  --enable-swscaler        software scaler support [default=no]"
+  echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
   echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
   echo "                           and ffmpeg will be under GPL [default=no]"
   echo ""
@@ -440,6 +441,7 @@ bigendian="no"
 inttypes="yes"
 emu_fast_int="no"
 vhook="default"
+avisynth="no"
 dlfcn="no"
 dlopen="no"
 mpegaudio_hp="yes"
@@ -769,6 +771,8 @@ for opt do
   ;;
   --enable-x264) x264="yes"
   ;;
+  --enable-avisynth) avisynth="yes";
+  ;;
   --enable-dc1394) dc1394="yes"
     pkg_requires="$pkg_requires libraw1394"
   ;;
@@ -1304,6 +1308,22 @@ EOF
     restore_flags
 fi
 
+# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
+if enabled avisynth; then
+    save_flags
+    temp_extralibs -lvfw32
+    check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
+#include <windows.h>
+#include <vfw.h>
+int main(){
+    AVIFileInit();
+    return 0;
+}
+EOF
+    restore_flags
+fi
+
+
 # test for lrintf in math.h
 check_exec <<EOF && have_lrintf=yes || have_lrintf=no
 #define _ISOC9X_SOURCE  1
@@ -1527,6 +1547,7 @@ echo "a52 dlopened     $a52bin"
 echo "DTS support      $dts"
 echo "pp support       $pp"
 echo "Software Scaler enabled $swscaler"
+echo "AVISynth enabled $avisynth"
 echo "debug symbols    $debug"
 echo "strip symbols    $dostrip"
 echo "optimize         $optimize"
@@ -1935,6 +1956,11 @@ if test "$x264" = "yes" ; then
   echo "CONFIG_X264=yes" >> config.mak
 fi
 
+if test "$avisynth" = "yes" ; then
+  echo "#define CONFIG_AVISYNTH 1" >> $TMPH
+  echo "CONFIG_AVISYNTH=yes" >> config.mak
+fi
+
 if test "$mingw32" = "yes" ; then
   echo "CONFIG_MINGW=yes" >> config.mak
   echo "HAVE_W32THREADS=yes" >> config.mak
index eecbcb2..eb41395 100644 (file)
@@ -27,6 +27,7 @@ OBJS-$(CONFIG_AU_DEMUXER)                += au.o riff.o
 OBJS-$(CONFIG_AU_MUXER)                  += au.o riff.o
 OBJS-$(CONFIG_AVI_DEMUXER)               += avidec.o riff.o
 OBJS-$(CONFIG_AVI_MUXER)                 += avienc.o riff.o
+OBJS-$(CONFIG_AVISYNTH)                  += avisynth.o
 OBJS-$(CONFIG_AVS_DEMUXER)               += avs.o
 OBJS-$(CONFIG_CRC_MUXER)                 += crc.o
 OBJS-$(CONFIG_FRAMECRC_MUXER)            += crc.o
index 74d97cb..2cb66ff 100644 (file)
@@ -83,6 +83,9 @@ void av_register_all(void)
 #ifdef CONFIG_AVI_MUXER
     av_register_output_format(&avi_muxer);
 #endif
+#ifdef CONFIG_AVISYNTH
+    av_register_input_format(&avisynth_demuxer);
+#endif
 #ifdef CONFIG_AVS_DEMUXER
     av_register_input_format(&avs_demuxer);
 #endif
index 89e1ae7..946519e 100644 (file)
@@ -16,6 +16,7 @@ extern AVInputFormat audio_demuxer;
 extern AVOutputFormat audio_muxer;
 extern AVInputFormat avi_demuxer;
 extern AVOutputFormat avi_muxer;
+extern AVInputFormat avisynth_demuxer;
 extern AVInputFormat avs_demuxer;
 extern AVOutputFormat crc_muxer;
 extern AVOutputFormat framecrc_muxer;