On Fri, Dec 09, 2016 at 05:25:21PM +0100, Diego Biurrun wrote:
> On Fri, Dec 09, 2016 at 04:25:31PM +0100, Hendrik Leppkes wrote:
> > On Fri, Dec 9, 2016 at 3:52 PM, Diego Biurrun <di...@biurrun.de> wrote:
> > > On Mon, Dec 05, 2016 at 05:39:57PM +0100, Hendrik Leppkes wrote:
> > >> On Tue, Nov 29, 2016 at 7:34 PM, Diego Biurrun <di...@biurrun.de> wrote:
> > >> > --- a/configure
> > >> > +++ b/configure
> > >> > @@ -2382,7 +2382,6 @@ sndio_indev_deps="sndio_h"
> > >> >  vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
> > >> > -vfwcap_indev_extralibs="-lavicap32"
> > >> >  xcbgrab_indev_deps="libxcb"
> > >> >
> > >> > @@ -3041,7 +3040,6 @@ msvc_common_flags(){
> > >> >              -march=*)             ;;
> > >> >              -lz)                  echo zlib.lib ;;
> > >> > -            -lavicap32)           echo vfw32.lib user32.lib ;;
> > >> >              -lx264)               echo libx264.lib ;;
> > >> >              -l*)                  echo ${flag#-l}.lib ;;
> > >> > @@ -4752,7 +4750,7 @@ check_header AVFoundation/AVFoundation.h &&
> > >> >
> > >> >  check_header sys/videoio.h
> > >> >
> > >> > -check_func_headers "windows.h vfw.h" capCreateCaptureWindow 
> > >> > "$vfwcap_indev_extralibs"
> > >> > +check_lib "windows.h vfw.h" capCreateCaptureWindow -lvfw32
> > >> >  # check that WM_CAP_DRIVER_CONNECT is defined to the proper value
> > >> >  # w32api 3.12 had it defined wrong
> > >> > @@ -4804,6 +4802,10 @@ if enabled libxcb; then
> > >> >
> > >> >  enabled dxva2 &&
> > >> > +    check_lib "windows.h winuser.h" GetShellWindow -luser32 ||
> > >> > +    disable dxva2
> > >> > +
> > >> > +enabled dxva2 &&
> > >> >      check_lib windows.h CoTaskMemFree -lole32 &&
> > >> >      enable dxva2_lib
> > >>
> > >> This entirely takes out linking against avicap32, and replaces it with
> > >> vfw32, presumably this was once required (except for msvc). That does
> > >> introduce a distinct change in linking, so it would need testing on
> > >> all supported versions of mingw.
> > >
> > > I suspect this was cargo-culted around. I tested building with dxva2
> > > disabled and vfwcap enabled on Cygwin, Msys 2, and Mingw32. No problems.
> > >
> > >> Also does vfwcap indev not require user32 anymore, like it apparently 
> > >> used to?
> > >
> > > The only use of GetShellWindow is in libavutil/hwcontext_dxva2.c.
> > 
> > On a quick check, vfwcap uses GetWindowLongPtr, which is from user32.dll.
> > There might be other functions in there as well. I am not sure however
> > if user32.dll is part of the default link libraries these days, and
> > maybe was not at some earlier point.
> 
> It certainly worked without linking against user32.dll at all, so our
> best guess is that your theory is right. I'm assuming that means that
> linking against user32.dll at all is pointless nowadays?

user32.dll seems to be necessary for MSVC still.

Diego
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to