Message ID | 20220801123543.3873437-1-martin@martin.st |
---|---|
State | Accepted |
Commit | 8e6759f10c788ce25f89e7e692d24e8e4ce527f2 |
Headers | show |
Series | [FFmpeg-devel] configure: Check for DXGI_OUTDUPL_FRAME_INFO for the ddagrab filter | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Very weird decision by Microsoft there for sure. Patch LGTM
On Mon, Aug 1, 2022 at 2:36 PM Martin Storsjö <martin@martin.st> wrote: > > The DXGI_OUTDUPL_FRAME_INFO type isn't available in Windows API > subsets other than "desktop", while the IDXGIOutput1 interface is > available for all API subsets. > > This fixes compilation for UWP/"Windows Store" configurations (and > older API subsets like Windows Phone). The entire desktop duplication API is not present on Phone targets (its called "desktop" duplication afterall). I think it would be better to check for a primary DDA function, instead of some auxiliary structure. - Hendrik
On Mon, 1 Aug 2022, Hendrik Leppkes wrote: > On Mon, Aug 1, 2022 at 2:36 PM Martin Storsjö <martin@martin.st> wrote: >> >> The DXGI_OUTDUPL_FRAME_INFO type isn't available in Windows API >> subsets other than "desktop", while the IDXGIOutput1 interface is >> available for all API subsets. >> >> This fixes compilation for UWP/"Windows Store" configurations (and >> older API subsets like Windows Phone). > > The entire desktop duplication API is not present on Phone targets > (its called "desktop" duplication afterall). I think it would be > better to check for a primary DDA function, instead of some auxiliary > structure. FWIW, based on the MSVC error output (http://fate.ffmpeg.org/log.cgi?log=compile&slot=arm-msvc2019-phone&time=20220730152801), the only hard errors it listed were the undefined types (DXGI_OUTDUPL_POINTER_SHAPE_INFO and DXGI_OUTDUPL_FRAME_INFO) - but I presume that IDXGIOutputDuplication_AcquireNextFrame and IDXGIOutputDuplication_ReleaseFrame could be good candidates for checking too - I don't see anything else in that error log that one could check for? // Martin
On Mon, Aug 1, 2022 at 2:56 PM Martin Storsjö <martin@martin.st> wrote: > > On Mon, 1 Aug 2022, Hendrik Leppkes wrote: > > > On Mon, Aug 1, 2022 at 2:36 PM Martin Storsjö <martin@martin.st> wrote: > >> > >> The DXGI_OUTDUPL_FRAME_INFO type isn't available in Windows API > >> subsets other than "desktop", while the IDXGIOutput1 interface is > >> available for all API subsets. > >> > >> This fixes compilation for UWP/"Windows Store" configurations (and > >> older API subsets like Windows Phone). > > > > The entire desktop duplication API is not present on Phone targets > > (its called "desktop" duplication afterall). I think it would be > > better to check for a primary DDA function, instead of some auxiliary > > structure. > > FWIW, based on the MSVC error output > (http://fate.ffmpeg.org/log.cgi?log=compile&slot=arm-msvc2019-phone&time=20220730152801), > the only hard errors it listed were the undefined types > (DXGI_OUTDUPL_POINTER_SHAPE_INFO and DXGI_OUTDUPL_FRAME_INFO) - but I > presume that IDXGIOutputDuplication_AcquireNextFrame and > IDXGIOutputDuplication_ReleaseFrame could be good candidates for checking > too - I don't see anything else in that error log that one could check > for? I guess it doesn't really matter what we check for, and checking for types seems easier then those macro'ed COM function wrappers. It just felt slightly odd. But since its in already, no need to worry. - Hendrik
Yeah, doesn't really matter what of the two we check for. Type and DDA API should always exist in tandem.
diff --git a/configure b/configure index 8c7e8c9d1d..eb413a6716 100755 --- a/configure +++ b/configure @@ -3158,7 +3158,7 @@ overlay_cuda_filter_deps="ffnvcodec" overlay_cuda_filter_deps_any="cuda_nvcc cuda_llvm" sharpen_npp_filter_deps="ffnvcodec libnpp" -ddagrab_filter_deps="d3d11va IDXGIOutput1" +ddagrab_filter_deps="d3d11va IDXGIOutput1 DXGI_OUTDUPL_FRAME_INFO" amf_deps_any="libdl LoadLibrary" nvenc_deps="ffnvcodec" @@ -6395,6 +6395,7 @@ check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss check_type "windows.h dxva.h" "DXVA_PicParams_AV1" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT_BUILD_DESKTOP_APP=0 check_type "windows.h dxva.h" "DXVA_PicParams_HEVC" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT_BUILD_DESKTOP_APP=0 check_type "windows.h dxva.h" "DXVA_PicParams_VP9" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT_BUILD_DESKTOP_APP=0 +check_type "windows.h dxgi1_2.h" "DXGI_OUTDUPL_FRAME_INFO" check_type "windows.h dxgi1_2.h" "IDXGIOutput1" check_type "windows.h dxgi1_5.h" "IDXGIOutput5" check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
The DXGI_OUTDUPL_FRAME_INFO type isn't available in Windows API subsets other than "desktop", while the IDXGIOutput1 interface is available for all API subsets. This fixes compilation for UWP/"Windows Store" configurations (and older API subsets like Windows Phone). Signed-off-by: Martin Storsjö <martin@martin.st> --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)