Компиляция ffmpeg с использованием MSVC с поддержкой декодеров d3d11va - PullRequest
0 голосов
/ 02 октября 2019

Мне нужно отладить проблему в ffmpeg, поэтому я был вынужден собрать все библиотеки с использованием MSVC, чтобы получить правильные файлы pdb. Я успешно скомпилировал ffmpeg и смог его отладить. Единственная проблема, с которой я столкнулся, - это то, что я не могу использовать d3d11va.

Я попытался включить все найденные модификаторы конфигурации для включения d3d11va. Я использую скрипт конфигурации, как это.

../../../configure --toolchain=msvc --disable-programs --arch=x86_64 --enable-shared --disable-encoders --disable-muxers  --disable-demuxers --enable-demuxer=h264 --enable-demuxer=mov --disable-decoders --enable-decoder=h264 --disable-parsers --enable-parser=h264 --disable-bsfs --disable-protocols --disable-devices --disable-filters --target-os=win32 --extra-cflags="-MD -DWINAPI_FAMILY=WINAPI_FAMILY_APP -D_WIN32_WINNT=0x0A00" --extra-ldflags="-APPCONTAINER WindowsApp.lib"

install prefix            ../../../Build/Windows10/x64
source path               /c/Users/ffmpeg/Repositories/FFmpeg
C compiler                cl.exe
C library                 msvcrt
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             nasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
AVX2 enabled              yes
AVX-512 enabled           yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              yes
EBX available             no
EBP available             no
debug symbols             yes
strip symbols             no
optimize for size         no
optimizations             yes
static                    no
shared                    yes
postprocessing support    no
network support           yes
threading support         w32threads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          no
makeinfo supports HTML    no

External libraries:

External libraries providing hardware acceleration:
d3d11va

Libraries:
avcodec                 avdevice                avfilter                avformat                avutil                  swresample              swscale

Programs:

Enabled decoders:
h263                    h264                    hevc                    mpeg2video              vc1                     vp9

Enabled encoders:

Enabled hwaccels:
h264_d3d11va            hevc_d3d11va            mpeg2_d3d11va           vc1_d3d11va             vp9_d3d11va             wmv3_d3d11va
h264_d3d11va2           hevc_d3d11va2           mpeg2_d3d11va2          vc1_d3d11va2            vp9_d3d11va2            wmv3_d3d11va2

Enabled parsers:
h263                    h264                    vp9

Enabled demuxers:
h264                    mov

Enabled muxers:

Enabled protocols:

Enabled filters:

Enabled bsfs:
null                    vp9_superframe_split

Enabled indevs:

Enabled outdevs:

License: LGPL version 2.1 or later
libavutil/avconfig.h is unchanged
libavfilter/filter_list.c is unchanged
libavcodec/codec_list.c is unchanged
libavcodec/parser_list.c is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/muxer_list.c is unchanged
libavdevice/indev_list.c is unchanged
libavdevice/outdev_list.c is unchanged
libavformat/protocol_list.c is unchanged
ffbuild/config.sh is unchanged

Я ожидаю, что этого будет достаточно для работы d3d11va, но когда я вызываю avcodec_get_hw_config (codec, i), я получаю пустую конфигурацию.

Есть идеи, в чем может быть проблема?

...