[FFmpeg-devel] [PATCH] Vhook on MinGW
Diego Biurrun
diego
Wed Jun 13 00:30:10 CEST 2007
On Sun, Jun 10, 2007 at 03:06:03AM -0300, Ramiro Polla wrote:
>
> I know vhook is coming to an end, and I never had to use it, so I never
> bothered to try and make it work with MinGW.
> But someone wanted vhooks on Windows (not with cygwin), and cared to pay
> to get it working, and it turns out it's simpler that I thought it would be.
>
> MinGW doesn't have libdl, so vhooks will still be disabled for anyone
> who doesn't specifically want vhooks and knows what they're doing.
> Whoever wants them just needs to create a shared libdl.dll (there are
> plenty of implementations around). A static libdl.a doesn't get picked
> up by check_func (because of the order it appears on the command line),
> and it's not worth changing this in FFmpeg.
>
> vhook1.diff
> Only print the warning in case vhooks have been enabled.
> vhook2.diff
> Also print the warning for MinGW.
> vhook3.diff
> Make ppm vhook depend on fork().
> vhook4.diff
> Copy flags from Cygwin.
>
> That's all it takes to get fish, null, and watermark to work wth MinGW.
>
> --- configure.orig Sun Jun 10 05:42:49 2007
> +++ configure Sun Jun 10 05:42:52 2007
> @@ -1168,6 +1168,8 @@
> targetos=mingw32
> shlibdir="$bindir"
> dv1394="no"
> + VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
> + VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
> ffserver="no"
> network="no"
> SLIBPREF=""
OK
> --- configure.orig Sun Jun 10 05:37:06 2007
> +++ configure Sun Jun 10 05:37:34 2007
> @@ -1671,7 +1671,7 @@
>
> enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
>
> -if test "$targetos" = cygwin && enabled static ; then
> +if test "$targetos" = cygwin && enabled_all static vhook ; then
> vhook="no"
> echo
> echo "At the moment vhooks don't work on Cygwin static builds."
OK
> --- configure.orig Sun Jun 10 05:38:25 2007
> +++ configure Sun Jun 10 05:39:54 2007
> @@ -1671,10 +1671,10 @@
>
> enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
>
> -if test "$targetos" = cygwin && enabled_all static vhook ; then
> +if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
> vhook="no"
> echo
> - echo "At the moment vhooks don't work on Cygwin static builds."
> + echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
> echo "Patches welcome."
> echo
> fi
OK
> --- configure.orig Sun Jun 10 05:40:05 2007
> +++ configure Sun Jun 10 05:40:16 2007
> @@ -1667,6 +1667,8 @@
> ldl=-ldl
> fi
>
> +check_func fork
> +
> test "$vhook" = "default" && vhook="$dlopen"
>
> enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
> --- vhook/Makefile.orig Sun Jun 10 05:41:07 2007
> +++ vhook/Makefile Sun Jun 10 05:40:54 2007
> @@ -6,9 +6,13 @@
>
> -HOOKS=null$(SLIBSUF) fish$(SLIBSUF) ppm$(SLIBSUF) watermark$(SLIBSUF)
> +HOOKS=null$(SLIBSUF) fish$(SLIBSUF) watermark$(SLIBSUF)
> ALLHOOKS=$(HOOKS) imlib2$(SLIBSUF) drawtext$(SLIBSUF)
>
> +ifeq ($(HAVE_FORK),yes)
> + HOOKS += ppm$(SLIBSUF)
> +endif
You missed ALLHOOKS.
Diego
More information about the ffmpeg-devel
mailing list