[FFmpeg-devel] [PATCH v2 0/8] ddagrab source filter, lavfi.c wrapped_avframe and dependent changes

Mark Himsley mark.himsley at gmail.com
Tue Jul 19 18:21:41 EEST 2022


On Tue, 19 Jul 2022 at 12:34, Timo Rothenpieler <timo at rothenpieler.org> wrote:
>
> I'm honestly not sure what this is complaining about.

Sorry:
Maybe the my copy/paste was less than east to read?
Maybe because mu copy/paste was from a make -j6 in Docker run from Jenkins?
Maybe the problem is cross-compiling with MinGW?

> Does it not know the DPI_AWARENESS_CONTEXT enum?
> Does it not know how tp typedef within a function body?

I don't think I can answer that.

I'm building in a Docker container based on an Ubuntu 20.04 image.

This was my configure:

./configure --extra-version=static_win_x86_64_202207191248
--extra-cflags=--static -static -static-libstdc++ -static-libgcc
-DPTW32_STATIC_LIB -D_WIN32_WINNT=0x0600  --extra-libs=-static
-lpthread -lm --pkg-config-flags=--static
--cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32
--prefix=/opt/ffbuild --enable-gpl --enable-version3 --enable-nonfree
--disable-ffplay --disable-dxva2 --disable-w32threads --enable-libzimg
--enable-libxml2 --enable-openssl --enable-libfreetype --enable-libsrt
--enable-libmp3lame --enable-libspeex --enable-libtheora
--enable-libvorbis --enable-libopus --enable-libxvid --enable-libvpx
--enable-libfdk-aac --enable-libopenjpeg --enable-libaom
--enable-libx264 --enable-libx265

This was the last attempted compile and the failure again:

x86_64-w64-mingw32-gcc -I. -I./ --static -static -static-libstdc++
-static-libgcc -DPTW32_STATIC_LIB -D_WIN32_WINNT=0x0600
-I/opt/ffbuild/include -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
-D__printf__=__gnu_printf__ -D_POSIX_C_SOURCE=200112
-D_XOPEN_SOURCE=600 -DPIC -DOPJ_STATIC -DZLIB_CONST -DHAVE_AV_CONFIG_H
-DBUILDING_avfilter --static -static -static-libstdc++ -static-libgcc
-DPTW32_STATIC_LIB -D_WIN32_WINNT=0x0600 -I/opt/ffbuild/include
--static -static -static-libstdc++ -static-libgcc -DPTW32_STATIC_LIB
-D_WIN32_WINNT=0x0600 -std=c11 -fomit-frame-pointer -pthread
-I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include
-I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include
-I/opt/ffbuild/include/libpng14 -I/opt/ffbuild/include/openjpeg-2.4
-I/opt/ffbuild/include/opus -I/opt/ffbuild/include/opus
-I/opt/ffbuild/include -I/opt/ffbuild/include
-I/opt/ffbuild/include/srt -I/opt/ffbuild/include
-I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include
-I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include
-I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include
-DLIBXML_STATIC -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization
-Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits
-Wundef -Wmissing-prototypes -Wstrict-prototypes -Wempty-body
-Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts
-O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize
-Werror=format-security -Werror=implicit-function-declaration
-Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat
-fdiagnostics-color=auto -Wno-maybe-uninitialized   -MMD -MF
libavfilter/vsrc_ddagrab.d -MT libavfilter/vsrc_ddagrab.o -c -o
libavfilter/vsrc_ddagrab.o libavfilter/vsrc_ddagrab.c
libavfilter/vsrc_ddagrab.c: In function 'init_dxgi_dda':
libavfilter/vsrc_ddagrab.c:157:36: error: expected declaration
specifiers or '...' before '*' token
  157 |     typedef DPI_AWARENESS_CONTEXT
(*set_thread_dpi_t)(DPI_AWARENESS_CONTEXT);
      |                                    ^
libavfilter/vsrc_ddagrab.c:158:5: error: unknown type name 'set_thread_dpi_t'
  158 |     set_thread_dpi_t set_thread_dpi;
      |     ^~~~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:200:23: error: 'set_thread_dpi_t'
undeclared (first use in this function); did you mean
'set_thread_dpi'?
  200 |     set_thread_dpi = (set_thread_dpi_t)dlsym(user32_module,
"SetThreadDpiAwarenessContext");
      |                       ^~~~~~~~~~~~~~~~
      |                       set_thread_dpi
libavfilter/vsrc_ddagrab.c:200:23: note: each undeclared identifier is
reported only once for each function it appears in
libavfilter/vsrc_ddagrab.c:200:40: error: expected ';' before 'GetProcAddress'
  200 |     set_thread_dpi = (set_thread_dpi_t)dlsym(user32_module,
"SetThreadDpiAwarenessContext");
      |                                        ^
      |                                        ;
libavfilter/vsrc_ddagrab.c:206:9: error: unknown type name
'DPI_AWARENESS_CONTEXT'
  206 |         DPI_AWARENESS_CONTEXT prev_dpi_ctx;
      |         ^~~~~~~~~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:215:39: error:
'DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2' undeclared (first use in
this function)
  215 |         prev_dpi_ctx =
set_thread_dpi(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
      |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:215:24: error: called object
'set_thread_dpi' is not a function or function pointer
  215 |         prev_dpi_ctx =
set_thread_dpi(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
      |                        ^~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:158:22: note: declared here
  158 |     set_thread_dpi_t set_thread_dpi;
      |                      ^~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:229:13: error: called object
'set_thread_dpi' is not a function or function pointer
  229 |             set_thread_dpi(prev_dpi_ctx);
      |             ^~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:158:22: note: declared here
  158 |     set_thread_dpi_t set_thread_dpi;
      |                      ^~~~~~~~~~~~~~
libavfilter/vsrc_ddagrab.c:233:24: warning: assignment to 'int' from
'void *' makes integer from pointer without a cast [-Wint-conversion]
  233 |         set_thread_dpi = NULL;
      |                        ^
libavfilter/vsrc_ddagrab.c:239:24: warning: assignment to 'int' from
'void *' makes integer from pointer without a cast [-Wint-conversion]
  239 |         set_thread_dpi = NULL;
      |                        ^
make: *** [ffbuild/common.mak:81: libavfilter/vsrc_ddagrab.o] Error 1



I had hoped that if I included `--disable-indev=gdigrab` in my
./configure then I could get around this problem, but it seems not -
the build continues to fail at the same place.

-- 
Mark Himsley


More information about the ffmpeg-devel mailing list