diff --git a/Changelog b/Changelog index a3c89dd960..bfccb866ae 100644 --- a/Changelog +++ b/Changelog @@ -54,6 +54,7 @@ version - MXF demuxer - VC-1/WMV3/WMV9 video decoder - MacIntel support +- AVISynth support version 0.4.9-pre1: diff --git a/configure b/configure index 01f76789b9..3f61ad8975 100755 --- 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 < +#include +int main(){ + AVIFileInit(); + return 0; +} +EOF + restore_flags +fi + + # test for lrintf in math.h check_exec <> 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 diff --git a/libavformat/Makefile b/libavformat/Makefile index eecbcb25bf..eb413951db 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -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 diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 74d97cb81e..2cb66ffa98 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -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 diff --git a/libavformat/allformats.h b/libavformat/allformats.h index 89e1ae7d06..946519ed71 100644 --- a/libavformat/allformats.h +++ b/libavformat/allformats.h @@ -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;