[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