Giter Site home page Giter Site logo

shiftmediaproject / ffvs-project-generator Goto Github PK

View Code? Open in Web Editor NEW
168.0 18.0 73.0 11.27 MB

A program that can scan existing FFmpeg/LibAV source files and dynamically generate a Visual Studio project file.

License: GNU Lesser General Public License v2.1

C++ 97.06% Batchfile 2.94%
ffmpeg visualstudio msvc visual-studio

ffvs-project-generator's Introduction

FFVS-Project-Generator

Build status Github All Releases GitHub release GitHub issues license donate

About

The FFmpeg VS Project Generator is a standalone program that can be used to create a custom Visual Studio project within a FFmpeg source code distribution. This program allows for the created Visual Studio project to be customised using virtually any of the options supported by FFmpegs default configure script. This allows for selecting which dependency libraries and codec/format support should be built into the created project file. With the output project FFmpeg libraries and programs can be built and debugged directly within Visual Studio.

FFmpeg

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. https://ffmpeg.org

Downloads

Pre-built executables are available from the releases page in a single archive containing both 32bit and 64bit versions.

Generating Custom Project Files

This project comes with the ffmpeg_generator program which can be used to build custom project files. This program accepts many of the configuration parameters that are supported by FFmpegs standard configure script (see FFmpegs documentation for more details). These options can be used to disable/enable specific options that define how FFmpeg is built. Using ffmpeg_generator a new project can be built using these options.

To generate a custom project using different configuration options simply build ffmpeg_generator and then run it by passing in the desired config options. In order for the generator to run it must have access to the ffmpeg source files that should be built into the new generated project. The generator will search for the source configure file in order to find what options are avilable for the current sources. This file must be accessible for the program to run, if the generator cannot find the configure files location then the input command option --rootdir= can be used to specify its location.

For example to build FFmpeg without any additional dependencies:

ffmpeg_generator.exe --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl --toolchain=msvc

As well as enabling/disabling dependency libraries, specific config options can also be enabled/disabled. For instance a project that does not require yasm can be built by passing --disable-yasm. Specific FFmpeg programs can also be disabled such as --disable-ffprobe which will prevent a project file being generated for the FFmpeg program ffprobe.

The generator is designed to automatically resolve dependencies so if a configure option is disabled all options that depend on it will also be disabled accordingly.

For a complete list of available commands the --help option can be passed to the generator. This will give the complete list of accepted options based on the current sources.

By default the generator will build a project using the latest available toolchain detected on the host computer. This can be changed by hand in the generated projects properties Project Configuration->General->Platform Toolset if an older toolset is desired. The generator also supports use of the Intel compiler. The --toolchain= option can be used to change between standard Microsoft compiler (msvc) and the Intel compiler (icl).

Note: FFmpeg requires C99 support in order to compile. Only Visual Studio 2013 or newer supports required C99 functionality and so any older version is not supported. Visual Studio 2013 or newer is required. If using an older unsupported version of Visual Studio the Intel compiler can be used to add in the required C99 capability.

The project generator will also check the availability of dependencies. Any enabled options must have the appropriate headers installed in *OutputDir otherwise an error will be generated.

Sevaral automated batch files are supplied with the project that can be used to generate FFmpeg projects based on dependencies provided by ShiftMediaProject (smp_project_generate_gpl etc.). These batch files can be used to build projects based on various configurations and they can also optionally download all the appropriate dependency libraries that are supplied by ShiftMediaProject.

  • OutputDir is the Output Directory specified in the project properties.
    Note: There is a different OutputDir for 32/64bit configurations. Lib's and DLL's should be placed in the correct directory.
    Any header files will need to be placed in the Output directories include folder OutputDir\include.
    By default the 32bit lib OutputDir is OutputDir/lib/x86 and 64bit is OutputDir/lib/x64. DLLs follow a similar scheme except using OutputDir/bin/x86 and for 64bit OutputDir/bin/x64.
    The default value of OutputDir is ....\msvc relative to the FFmpeg source directory. An example of the expetced directory structure is:
    • msvc (OutputDir)
    • source >
      • FFmpeg
      • ..Any other libraries source code..

Using the Supplied Dependency Projects

Many of the possible FFmpeg dependencies (and their dependencies) are provided by the ShiftMediaProject repositories.

Many of the possible FFmpeg dependencies (and there dependencies) are available in the ShiftMediaProject repositories. However the following is a list of extra dependency options that require external downloads if used:

  1. opengl (requires glext)
    1. Download glext.h and wglext.h from opengl.org.
    2. Save the header files into OutputDir/include/gl/*.
  2. opencl (requires latest Intel/AMD OpenCL or NVIDIA CUDA SDK)
    1. Download either the "Intel OpenCL SDK", "AMD OpenCL SDK" or the "NVIDIA CUDA SDK" from their respective suppliers.
    2. Install the downloaded SDK wherever desired.
  3. ffnvcodec/nvdec/nvenc (requires nv-codec-headers)
    1. Download the nv-codec-headers repository from https://github.com/FFmpeg/nv-codec-headers
    2. Save the contents of the nv-codec-headers repositories "include" folder into "OutputDir/include/*".
  4. cuda-sdk (requires latest NVIDIA CUDA SDK)
    1. Download the NVIDIA CUDA SDK from the NVIDIA website
    2. Install the downloaded SDK wherever desired.
  5. amf (requires Advanced Media Framework (AMF) SDK headers)
    1. Download the AMF repository from https://github.com/GPUOpen-LibrariesAndSDKs/AMF
    2. Save the contents of the AMF repositories "amf/public/include" into "OutputDir/include/AMF/*".
  6. decklink (requires Blackmagic DeckLink SDK)
    1. Download the "Blackmagic DeckLink SDK" from the Blackmagic website.
    2. Extract the downloaded SDK wherever desired.
    3. Run the following command from a Visual Studio developer command prompt in the "Win/include" folder: midl /win32 /h DeckLinkAPI.h DeckLinkAPI.idl
    4. Copy the newly created "DeckLinkAPI.h" and "DeckLinkAPI_i.c" files to OutputDir/include/*.

Any dependencies supplied by ShiftMediaProject should be downloaded next to the FFmpeg folder as they will use the same OutputDir location. Projects to build each dependency can be found in the respective repository ./SMP directories.

Only dependencies built from supplied ShiftMediaProject repositories are tested and supported. Using compiled dependencies from other sources may result in version or other issues. Although these external sources generally work fine any problems associated with them are not covered by ShiftMediaProject and so they should be used with discretion.

Building with ASM

If the enable-nasm option is used to generate a project then in order to use the output project file using msvc you must first download and install NASM. NASM is required to compile all used assembly files.

  1. Visual Studio NASM integration can be downloaded from https://github.com/ShiftMediaProject/VSNASM/releases/latest
  2. Once downloaded simply follow the install instructions included in the download.

Note: Older source versions of FFmpeg used YASM for assembly compilation instead of NASM if using an older source release then YASM integration will be needed instead. The installation of YASM is identical to that of NASM https://github.com/ShiftMediaProject/VSYASM/releases/latest

License

FFVS-Project-Generator itself is released under LGPLv2. The generated output project(s) and source can be used with existing FFmpeg source code such that any resultant binaries created by the generated projects will still conform to the license of the FFmpeg source code itself. This means the output binaries are licensed based on the command line specified when generating the projects (i.e. --enable-gpl etc.).

ffvs-project-generator's People

Contributors

aleksas avatar csg2008 avatar ibaoger avatar oviano avatar sibras avatar softworkz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ffvs-project-generator's Issues

Could not work for ffmpeg 5.1

Version 1.11.4 could not work for ffmpeg 5.1, has following compile error:

../ffmpeg-5.1/libavutil/tx.c(350): error C2001: newline in constant
../ffmpeg-5.1/libavutil/tx.c(351): error C2143: syntax error: missing ')' before 'else'

Crash on missing ConfigOption

When getCongfigOption() ifails to find an option, the end() iterator may be dereferenced.

e.g. projectGenerator::buildDependencyDirs (line 194) on processing libaacplus.

Error: Could not find valid source file for object (fftoolsres)

Hello

Latest FFmpeg/master produces an error relating to fftoolsres, which seems to be a file recently added to the fftools folder.

I guess the project generator needs to handle this somehow?

./project_generate.exe --disable-ffplay --disable-ffprobe --disable-postproc --enable-cuda-nvcc --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl2 '--prefix=..\ffmpeg-win32-server'
Project generator (this may take several minutes, please wait)...
Passing configure file...
Outputting config.h...
Outputting config_components.h...
Outputting avconfig.h...
Outputting ffversion.h...
Outputting enabled components file libavfilter/filter_list.c...
Outputting enabled components file libavcodec/codec_list.c...
Outputting enabled components file libavcodec/parser_list.c...
Outputting enabled components file libavcodec/bsf_list.c...
Outputting enabled components file libavformat/demuxer_list.c...
Outputting enabled components file libavformat/muxer_list.c...
Outputting enabled components file libavdevice/indev_list.c...
Outputting enabled components file libavdevice/outdev_list.c...
Outputting enabled components file libavformat/protocol_list.c...
Generating from Makefile (../libavdevice/MakeFile)...
Generating missing DCE symbols (libavdevice)...
Generating project exports file (libavdevice)...
Generating project file (libavdevice)...
Generating from Makefile (../libavfilter/MakeFile)...
Generating from Makefile (..//libavfilter/dnn/Makefile)...
Generating from Makefile (../libavfilter/x86/MakeFile)...
Generating missing DCE symbols (libavfilter)...
Generating project exports file (libavfilter)...
Generating project file (libavfilter)...
Generating from Makefile (../libswscale/MakeFile)...
Generating from Makefile (../libswscale/x86/MakeFile)...
Generating missing DCE symbols (libswscale)...
Generating project exports file (libswscale)...
Generating project file (libswscale)...
Generating from Makefile (../libavformat/MakeFile)...
Generating missing DCE symbols (libavformat)...
Generating project exports file (libavformat)...
Generating project file (libavformat)...
Generating from Makefile (../libavcodec/MakeFile)...
Generating from Makefile (../libavcodec/x86/MakeFile)...
Generating missing DCE symbols (libavcodec)...
Generating project exports file (libavcodec)...
Generating project file (libavcodec)...
Generating from Makefile (../libswresample/MakeFile)...
Generating from Makefile (../libswresample/x86/MakeFile)...
Generating missing DCE symbols (libswresample)...
Generating project exports file (libswresample)...
Generating project file (libswresample)...
Generating from Makefile (../libavutil/MakeFile)...
Generating from Makefile (../libavutil/x86/MakeFile)...
Generating missing DCE symbols (libavutil)...
Generating project exports file (libavutil)...
Generating project file (libavutil)...
Generating from Makefile (../MakeFile) for project ffmpeg...
Generating from Makefile (../fftools/MakeFile) for project ffmpeg...
Error: Could not find valid source file for object (fftoolsres)

vcruntime.h and av_cmp_q

I downloaded latest https://ffmpeg.org/download.html

Errors detected during compilation :-
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'SDL.h': No such file or directory
error C1083: Cannot open include file: 'cdio/paranoia/cdda.h': No such file or directory
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_make_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_cmp_q' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C2054: expected '
error C2085: 'av_q2d' : not in formal parameter list
error C2143: syntax error : missing ';' before '{'
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
error C1083: Cannot open include file: 'vcruntime.h': No such file or directory
Based on the above error(s) there are files required for dependency libraries that are not available
Ensure that any required dependencies are available in 'OutDir' based on the supplied configuration options before trying again.
Consult the supplied readme for instructions for installing varying dependencies.
If a dependency has been cloned from a ShiftMediaProject repository then ensure it has been successfully built before trying again.
Removing the offending configuration option can also be used to remove the error.
Press any key to continue . . .

cl.exe not finding standard headers

Execution of ffvs_compile.bat failed.

ENV

  • VS 2017 (x86)
  • Windows 10
  • x64

The contents of ffvs_log.txt:

alldevices.c
avdevice.c
utils.c
file_open.c
dshow_crossbar.c
dshow.c
dshow_enummediatypes.c
dshow_enumpins.c
./ffmpeg/libavutil/avassert.h(30): fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory (compiling source file ffmpeg/libavdevice/avdevice.c)
./ffmpeg/libavformat/avformat.h(315): fatal error C1083: Cannot open include file: 'time.h': No such file or directory (compiling source file ffmpeg/libavdevice/utils.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_crossbar.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_enumpins.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_enummediatypes.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\internal.h(38): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory (compiling source file ffmpeg/libavdevice/file_open.c)
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winnt.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory (compiling source file ffmpeg/libavdevice/alldevices.c)
dshow_filter.c
dshow_pin.c
dshow_common.c
gdigrab.c
lavfi.c
opengl_enc.c
sdl2.c
vfwcap.c
ffmpeg/libavdevice/sdl2.c(26): fatal error C1083: Cannot open include file: 'SDL.h': No such file or directory
ffmpeg/libavdevice/lavfi.c(28): fatal error C1083: Cannot open include file: 'float.h': No such file or directory
reverse_wrap.c
ffmpeg/libavdevice/opengl_enc.c(25): fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_filter.c)
./ffmpeg/libavutil/internal.h(38): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory (compiling source file ffmpeg/libavdevice/vfwcap.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_pin.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\common.h(33): fatal error C1083: Cannot open include file: 'errno.h': No such file or directory (compiling source file ffmpeg/libavdevice/dshow_common.c)
c:\work\ffvs-project-generator-master\bin\ffmpeg\libavutil\avstring.h(24): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory (compiling source file ffmpeg/libavdevice/gdigrab.c)

smp_project_generate_*.bat ends up deleting ffmpeg.sln and ffmpeg.vcxproj

I'm trying to generate a custom FFmpeg solution that omits some features I don't want. I started the HEAD of this project and built project_generate.exe without issue. I also have the SMP fork of FFmpeg checked out to 4.2.r93029 (and no local modifications).

I modified gpl3.bat to remove --enable-opengl --enable-ffnvcodec --enable-cuda --enable-amf. I ran this batch file and it completed cleanly without errors. However, when I look at the ffmpeg project, many files were deleted and not generated, notably ffmpeg.sln and ffmpeg.vcxproj. Am I doing something wrong?

The output of my command and a git status are below

ffmpeg\source\FFVS-Project-Generator\bin>.\smp_project_generate_gpl3.bat
Located FFmpeg source directory at "../../ffmpeg/"

Creating project_get_dependencies.bat...

Do you want to download/update the required dependency projects (Y/N)?n
Running project generator...
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Outputting config.h...
  Outputting avconfig.h...
  Outputting ffversion.h...
  Outputting enabled components file libavfilter/filter_list.c...
  Outputting enabled components file libavcodec/codec_list.c...
  Outputting enabled components file libavcodec/parser_list.c...
  Outputting enabled components file libavcodec/bsf_list.c...
  Outputting enabled components file libavformat/demuxer_list.c...
  Outputting enabled components file libavformat/muxer_list.c...
  Outputting enabled components file libavdevice/indev_list.c...
  Outputting enabled components file libavdevice/outdev_list.c...
  Outputting enabled components file libavformat/protocol_list.c...
  Generating from Makefile (../../ffmpeg/libavdevice/MakeFile)...
  Generating missing DCE symbols (libavdevice)...
  Generating project exports file (libavdevice)...
  Generating project file (libavdevice)...
  Generating from Makefile (../../ffmpeg/libavfilter/MakeFile)...
  Generating from Makefile (../../ffmpeg/libavfilter/x86/MakeFile)...
  Generating missing DCE symbols (libavfilter)...
  Generating project exports file (libavfilter)...
  Generating project file (libavfilter)...
  Generating from Makefile (../../ffmpeg/libswscale/MakeFile)...
  Generating from Makefile (../../ffmpeg/libswscale/x86/MakeFile)...
  Generating missing DCE symbols (libswscale)...
  Generating project exports file (libswscale)...
  Generating project file (libswscale)...
  Generating from Makefile (../../ffmpeg/libpostproc/MakeFile)...
  Generating missing DCE symbols (libpostproc)...
  Generating project exports file (libpostproc)...
  Generating project file (libpostproc)...
  Generating from Makefile (../../ffmpeg/libavformat/MakeFile)...
  Generating missing DCE symbols (libavformat)...
  Generating project exports file (libavformat)...
  Generating project file (libavformat)...
  Generating from Makefile (../../ffmpeg/libavcodec/MakeFile)...
  Generating from Makefile (../../ffmpeg/libavcodec/x86/MakeFile)...
  Generating missing DCE symbols (libavcodec)...
  Generating project exports file (libavcodec)...
  Generating project file (libavcodec)...
  Generating from Makefile (../../ffmpeg/libswresample/MakeFile)...
  Generating from Makefile (../../ffmpeg/libswresample/x86/MakeFile)...
  Generating missing DCE symbols (libswresample)...
  Generating project exports file (libswresample)...
  Generating project file (libswresample)...
  Generating from Makefile (../../ffmpeg/libavutil/MakeFile)...
  Generating from Makefile (../../ffmpeg/libavutil/x86/MakeFile)...
  Generating missing DCE symbols (libavutil)...
  Generating project exports file (libavutil)...
  Generating project file (libavutil)...
Press any key to continue . . .
ffmpeg\source\ffmpeg\SMP>git status
HEAD detached at 4.2.r93029
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   compat.h
        modified:   config.asm
        modified:   config.h
        deleted:    ffmpeg.sln
        deleted:    ffmpeg.vcxproj
        deleted:    ffmpeg.vcxproj.filters
        deleted:    ffmpeg/dce_defs.c
        deleted:    ffplay.vcxproj
        deleted:    ffplay.vcxproj.filters
        deleted:    ffplay/dce_defs.c
        deleted:    ffprobe.vcxproj
        deleted:    ffprobe.vcxproj.filters
        deleted:    ffprobe/dce_defs.c
        modified:   libavcodec.vcxproj
        modified:   libavcodec.vcxproj.filters
        modified:   libavcodec/codec_list.c
        modified:   libavdevice.vcxproj
        modified:   libavdevice.vcxproj.filters
        modified:   libavdevice/indev_list.c
        modified:   libavdevice/outdev_list.c
        modified:   libavfilter.vcxproj
        modified:   libavfilter.vcxproj.filters
        modified:   libavfilter/filter_list.c
        modified:   libavformat.vcxproj
        modified:   libavformat.vcxproj.filters
        modified:   libavformat/demuxer_list.c
        modified:   libavformat/protocol_list.c
        deleted:    libavutil.vcxproj
        deleted:    libavutil.vcxproj.filters
        modified:   libpostproc.vcxproj
        modified:   libswresample.vcxproj
        modified:   libswscale.vcxproj

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        libavcodec/dxva2_h264_wrap.c
        libavcodec/dxva2_hevc_wrap.c
        libavcodec/dxva2_mpeg2_wrap.c
        libavcodec/dxva2_vc1_wrap.c
        libavcodec/dxva2_wrap.c
        libavcodec/hevc_ps_enc_wrap.c
        libavcodec/qsv_wrap.c
        libavcodec/qsvdec_h2645_wrap.c
        libavcodec/qsvdec_other_wrap.c
        libavcodec/qsvdec_wrap.c
        libavcodec/qsvenc_h264_wrap.c
        libavcodec/qsvenc_hevc_wrap.c
        libavcodec/qsvenc_jpeg_wrap.c
        libavcodec/qsvenc_mpeg2_wrap.c
        libavcodec/qsvenc_wrap.c
        libavdevice/dshow_common_wrap.c
        libavdevice/dshow_crossbar_wrap.c
        libavdevice/dshow_enummediatypes_wrap.c
        libavdevice/dshow_enumpins_wrap.c
        libavdevice/dshow_filter_wrap.c
        libavdevice/dshow_pin_wrap.c
        libavdevice/dshow_wrap.c
        libavdevice/gdigrab_wrap.c
        libavdevice/vfwcap_wrap.c
        libavfilter/qsvvpp_wrap.c
        libavfilter/vf_deinterlace_qsv_wrap.c
        libavfilter/vf_overlay_qsv_wrap.c
        libavfilter/vf_scale_qsv_wrap.c
        libavfilter/vf_vpp_qsv_wrap.c
        libavformat/avisynth_wrap.c
        libavformat/tls_wrap.c
        libavutil/hwcontext_dxva2_wrap.c
        libavutil/hwcontext_qsv_wrap.c

no changes added to commit (use "git add" and/or "git commit -a")

FFMPEG hangs only when using this generator

I was able to make a custom FFMPEG build using your amazing tool, using the following settings in a new batch file (copied from your LPGL batch file)

SET DEPENDENCIES=( ^
zlib, ^
opus, ^
libvpx ^
)
SET PGOPTIONS=--enable-version3 --enable-ffnvcodec --enable-avcodec --enable-avformat --enable-avfilter --enable-swresample --enable-swscale --enable-ffmpeg --enable-libvpx --enable-libopus --enable-zlib --enable-encoder=png  --enable-encoder=ljpeg --toolchain=msvc

This works nicely, I am able to build it using VS2017 (I also re-targeted the projects to Win10 14393)

However, when running it, FFMPEG hangs in an infinite loop in the append_packet_chunked function.

The FFMPEG command line arguments are:

-hide_banner -loglevel warning -y -f rawvideo -pix_fmt bgra -s 1920x1080 -r 25 -i \\.\pipe\WMAN_FFMPEG_6e323359-0400-4dc0-b709-caf470e6ec08 -an -threads 0 -r 25 -f image2 -compression_level 1 "d:\AnimNowExport\TRC_SHOT_16_F3428_F03516\test1TRC_SHOT_16_F3428_F03516\test1TRC_SHOT_16_F3428_F03516_%06d.png"

(we are feeding real-time 3D rendered scenes into FFMPEG on Windows 10, hence the pipe)

It outputs warnings:

Truncating packet of size 8294400 to 8261633
Truncating packet of size 8290574 to 8257807

and then hangs, similarly to this report from 2012

It does work with an FFMPEG build generated using https://github.com/rdp/ffmpeg-windows-build-helpers, using the following config in Ubuntu

ffmpeg version N-92374-gd96ae9d5ea-ffmpeg-windows-build-helpers Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.0 (GCC)
configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --enable-w32threads --disable-pthreads --arch=x86_64 --target-os=mingw32 --enable-libopus --enable-libvpx --enable-nvenc --enable-nvdec --disable-amf --disable-libmfx --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared

I tried different FFMPEG source versions (3.4, 4.1,latest) but the behavior doesn't change.

Just encoding from a file works fine, it just seems to be the named pipe input that is broken.

Would you know what could be the cause, and any workarounds?

Thanks a lot,
Peter

Error: Unknown configuration operation found ($target_os)

Hey guys!
I just got the latest version of ffmpeg and wanted to convert it using your awesome tool but I get following message:

Running project generator...
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Error: Unknown configuration operation found ($target_os)

What's the solution?

error C2373: “ff_h263_chroma_qscale_table”: 重定义

when i use ffmpeg_generator program to build custom project files,but error C2373: “ff_h263_chroma_qscale_table”: 重定义.

E:\VS-Projects\FFmpeg-3.3.1.r86290\FFVS-Project-Generator\bin>project_generate.e
xe --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib
--disable-lzma --disable-sdl --toolchain=msvc --disable-bsf=extract_extradata -
-disable-encoders --disable-muxers
Project generator...
Passing configure file...
Warning: Unlisted config dependency found (qsvdec_mpeg2)
Warning: Unlisted config dependency found (qsvdec_vc1)
Warning: Unlisted config dependency found (qtkit)
Warning: Unlisted config dependency found (tls_protocol)
Outputting config.h...
Warning: Unknown option in ifa dependency (parisc64) for option (fast_64bit)
Outputting avconfig.h...
Outputting ffversion.h...
Outputting enabled components file libavcodec/bsf_list.c...
Outputting enabled components file libavformat/protocol_list.c...
Generating from Makefile (../../ffmpeg/libavcodec/)...
Warning: Unknown dynamic configuration option (CONFIG_MPEG4_OMX_ENCODER) used
when passing object (omx)
Generating from Makefile (../../ffmpeg/libavcodec/x86/)...
Generating missing DCE symbols (libavcodec)...
Warning: Found unknown macro in DCE condition FMT_H261
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition HUFFMAN_TABLE_OPTIMAL
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition CANDIDATE_MB_TYPE_DIRECT
Warning: Found unknown macro in DCE condition CANDIDATE_MB_TYPE_DIRECT0
Warning: Found unknown macro in DCE condition MV_DIRECT
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_MPEG1
Generating project exports file (libavcodec)...
Error: Errors detected during test compilation :-
error C2373: “ff_h263_chroma_qscale_table”: 重定义;不同的类型修饰符

Unknown error detected. See log.txt for further details.

请按任意键继续. . .

Not working with FFmpeg release 4.0

Hi,
I just pulled your git source and built binary successfully.
But it is not working with ffmpeg release 4.0 now but works with ffmpeg release 3.4.
This is the config options I tried with release 4.0.
--enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl2 --toolchain=msvc

I can see that there are some updates in release 4.0 recently so maybe this project_generate is not working now?

Wrapper Files

Hi,

quick question: is there a way to avoid the generation of those _wrap.c files?
Why do they exist?

Thanks,
sw

smp_project_generate_lgpl.bat specifies --enable-avisynth which is gpl only

When trying to run the generator through smp_project_generate_lgpl.bat the following error is received:

Running project generator...
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Error: Current license does not allow for option (AVISYNTH)
Press any key to continue . . .

because --enable-avisynth requires --enable-gpl

app crash with stack overlow

I just have cloned latest ffmpeg source code (Master branch, latest commit 2fc12f4) and tried to build solution.
I am using Win10 x64 and Visual Studio Community 2015.
After building the project_generate.exe successfully, tried to run it with this command "project_generate.exe --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl --toolchain=msvc".
Program says "Passing configure file..." and then crashes some minutes later

Please check this error and let me know how to fix.

Thank you.
appcrash

Error: Failed opening file (SMP/)

i got a error "Error: Failed opening file (SMP/) ".
the project_generate.exe version is 1.11.2_x64, and run it from an elevated (i.e administrator) command prompt.
my config as follows:

.\project_generate.exe --enable-gpl --enable-version3  --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-dxva2
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Outputting config.h...
  Outputting config_components.h...
  Outputting avconfig.h...
  Outputting ffversion.h...
  Outputting enabled components file libavfilter/filter_list.c...
  Outputting enabled components file libavcodec/codec_list.c...
  Outputting enabled components file libavcodec/parser_list.c...
  Outputting enabled components file libavcodec/bsf_list.c...
  Outputting enabled components file libavformat/demuxer_list.c...
  Outputting enabled components file libavformat/muxer_list.c...
  Outputting enabled components file libavdevice/indev_list.c...
  Outputting enabled components file libavdevice/outdev_list.c...
  Outputting enabled components file libavformat/protocol_list.c...
  Generating from Makefile (./libavdevice/MakeFile)...
  Generating missing DCE symbols (libavdevice)...
  Generating project exports file (libavdevice)...
  Generating project file (libavdevice)...
  Generating from Makefile (./libavfilter/MakeFile)...
  Generating from Makefile (.//libavfilter/dnn/Makefile)...
  Generating from Makefile (./libavfilter/x86/MakeFile)...
  Generating missing DCE symbols (libavfilter)...
  Generating project exports file (libavfilter)...
  Generating project file (libavfilter)...
  Generating from Makefile (./libswscale/MakeFile)...
  Generating from Makefile (./libswscale/x86/MakeFile)...
  Generating missing DCE symbols (libswscale)...
  Generating project exports file (libswscale)...
  Generating project file (libswscale)...
  Generating from Makefile (./libpostproc/MakeFile)...
  Generating missing DCE symbols (libpostproc)...
  Generating project exports file (libpostproc)...
  Generating project file (libpostproc)...
  Generating from Makefile (./libavformat/MakeFile)...
  Generating missing DCE symbols (libavformat)...
  Generating project exports file (libavformat)...
  Generating project file (libavformat)...
  Generating from Makefile (./libavcodec/MakeFile)...
  Generating from Makefile (./libavcodec/x86/MakeFile)...
  Generating missing DCE symbols (libavcodec)...
  Error: Failed opening file (SMP/)

i need some help. thank you.

VS build is slower

I have a weird issue. We started using your project to build ffmpeg for use on our video editing app. We previous used MinGW and it was always a PITA and we couldn't debug if there was an issue. The problem is that the VS build is slower. Specifically the MPEG-2 encoder is 1/2 the speed. I assume this is some sort of build flag, but I don't know enough about how you convert the config file to a VS project to even know where to look. Can you offer any suggestions? I'm thinking maybe an MMX/SSE type flag somewhere. Or maybe a threading thing. This is the config I used....

--enable-version3 --disable-doc --enable-shared --disable-ffplay --disable-ffserver --enable-zlib --toolchain=msvc

vcxproj files incorrectly formatted

Using the latest release the vcxproj files generated seem to be incorrectly formatted with "ItemGroup"s being placed where the xml version should go. For example in ffprobe.vcxproj:

<?xml versio
  <ItemGroup>
    <ClCompile Include="..\cmdutils.c" />
    <ClCompile Include="..\ffprobe.c" />
    <ClCompile Include="ffprobe\dce_defs.c" />
  </ItemGroup>n="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="DebugDLL|Win32">
      <Configuration>DebugDLL</Configuration>

support for new fftools folder

Hi
a very recent commit has moved all ffmpeg.c, etc, files to fftools directory.
When starting one of the bat files of this project I therefore run into an error because the Makefile for ffmpeg can't be found.
I haven't seen any easy fix. In the bat, I pointed ffmpeg.h to fftools/ffmpeg.h ; but this doesn't seem to carry to the detection of associated makefile .
Thanks

Invalid switch - "" Error

I'm trying to build a project but no matter what i tried i always get : ```
Invalid switch - "".
Error: Errors detected during compilation :-
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ')' before ':'
error C2143: syntax error: missing ';' before 'volatile'
error C2059: syntax error: ')'
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ':'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C1083: Cannot open include file: 'unistd.h': No such file or directory
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2065: 'asm': undeclared identifier
error C2059: syntax error: ')'
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ';' before 'volatile'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
error C2065: 'asm': undeclared identifier
error C2143: syntax error: missing ';' before 'volatile'
error C2143: syntax error: missing ')' before ':'
error C2059: syntax error: ')'
Based on the above error(s) there are files required for dependency libraries that are not available
Ensure that any required dependencies are available in 'OutDir' based on the supplied configuration options before trying again.
Consult the supplied readme for instructions for installing varying dependencies.
If a dependency has been cloned from a ShiftMediaProject repository then ensure it has been successfully built before trying again.
Removing the offending configuration option can also be used to remove the error.


Any help?

VS2013 compiling

Could not compile in Visual Studio 2013.
in projectGenerator.h:
ffvs-project-generator\include\projectgenerator.h(252): error C2536: 'ProjectGenerator::ProjectGenerator::asDCETags' : cannot specify explicit initializer for arrays
This happens because Visual Studio 2013 is not completely C++11. So the solution may be this:

    string asDCETags[6];
public:
	ProjectGenerator()
	{
		asDCETags[0] = "ARCH_";
		asDCETags[1] = "HAVE_";
		asDCETags[2] = "CONFIG_";
		asDCETags[3] = "EXTERNAL_";
		asDCETags[4] = "INTERNAL_";
		asDCETags[5] = "INLINE_";
	}

Also in projectGenerator.cpp:
uint32_t is declared in stdint.h
So, I added #include <stdint.h> there to compile project.

Static compile with libx264

This is just a question. I noticed that when compiling with libx264 enabled, I always need to make this change

image

in libavcodec/libx264.c

to avoid linker errors. How are you dealing with this on your side?

Thanks,
sw

Can not Generator libavcodec

When I use this,I found an error in the “smp_project_generate_noredist.bat” ,the line "%FFMPEGPATH%SMP/project_get_dependencies.bat" shoud be
"%FFMPEGPATH%/SMP/project_get_dependencies.bat", and I changed it,so the bat is ok, by it's not work to gen the config.h and libavcodec.vcxproj etc, the show msg folllow:

Warning: Reserved option (fast_64bit) was passed in command line option (--disable-fast_64bit)
This option is reserved and will be ignored
Outputting config.h...
Warning: Unknown option in ifa dependency (parisc64) for option (fast_64bit)
Outputting avconfig.h...
Outputting ffversion.h...
Outputting enabled components file libavcodec/bsf_list.c...
Outputting enabled components file libavformat/protocol_list.c...
Generating from Makefile (./libavcodec/)...
Warning: Unknown dynamic configuration option (CONFIG_MPEG4_OMX_ENCODER) used when passing object (omx)
Generating from Makefile (./libavcodec/x86/)...
Generating missing DCE symbols (libavcodec)...
Warning: Found unknown macro in DCE condition FMT_H261
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition HUFFMAN_TABLE_OPTIMAL
Warning: Found unknown macro in DCE condition FMT_MJPEG
Warning: Found unknown macro in DCE condition CANDIDATE_MB_TYPE_DIRECT
Warning: Found unknown macro in DCE condition CANDIDATE_MB_TYPE_DIRECT0
Warning: Found unknown macro in DCE condition MV_DIRECT
Warning: Found unknown macro in DCE condition FMT_H263
Warning: Found unknown macro in DCE condition FMT_MPEG1

when show the msg, then stop , and can not gen the project files.

My options is:
SET PGOPTIONS= ^
--disable-everything ^
--enable-small ^
--enable-ffmpeg ^
--enable-ffplay ^
--enable-gpl ^
--enable-version3 ^
--enable-nonfree ^
--enable-zlib ^
--enable-hardcoded-tables ^
--enable-avcodec ^
--enable-avformat ^
--enable-swresample ^
--enable-swscale ^
--enable-postproc ^
--enable-avfilter ^
--enable-avresample ^
--enable-avfilter ^
--enable-avdevice ^
--enable-d3d11va ^
--enable-dxva2 ^
--enable-sse ^
--enable-sse2 ^
--enable-sse3 ^
--enable-ssse3 ^
--enable-sse4 ^
--enable-sse42 ^
--enable-yasm ^
--disable-fast_64bit ^
--enable-decoder=h264 ^
--enable-decoder=aac ^
--enable-encoder=aac ^
--enable-encoder=libspeex ^
--enable-encoder=libx264 ^
--enable-hwaccel=h264_vaapi ^
--enable-hwaccel=h264_dxva2 ^
--enable-hwaccel=h264_d3d11va ^
--enable-demuxer=aac ^
--enable-demuxer=h264 ^
--enable-demuxer=mpegts ^
--enable-demuxer=rtp ^
--enable-muxer=h264 ^
--enable-muxer=mpegts ^
--enable-muxer=rtp ^
--enable-muxer=rtp_mpegts ^
--disable-parsers ^
--enable-parser=aac ^
--enable-parser=h264 ^
--enable-protocol=rtp ^
--enable-protocol=udp ^
--enable-indev=dshow ^
--enable-indev=gdigrab ^
--enable-outdev=sdl2 ^
--toolchain=msvc

Unable to disable assembly optimizations

FFmpeg Version 5.1

Command Line

C:\Users\Frank\FFmpeg>.\project_generate.exe --disable-asm
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Error: Unknown option (asm) in command line option (asm)
         Use --help to get available options

Architecture-specific flags such as --disable-x86asm fail in a similar way, as do their --enable-* counterparts.

Your Environment

  • Visual Studio Version: Community 2022
  • Operating System and Version: Windows 11 Arm64 insider preview via. VM

Non-existent "libcuda_nvcc.lib" link library added to VS projects with --enable-cuda-nvcc

Recent-ish changes to FFmpeg have deprecated enable-cuda-sdk in favour of enable-cuda-nvcc. The intention is that the likes of yadif_cuda etc no longer need to link with the CUDA SDK libraries (they can rely on ffnvcodec), however, the CUDA SDK still needs to be present in order to build (nvcc).

I'm trying to get this configuration going with your wonderful tool but I guess something needs tweaking somewhere as it is assuming there is some kind of "libcuda_nvcc.lib" needing creating, which as far as I can tell isn't the case.

I am going to manually delete these entries for now, and see if I come up against any other problems with the cuda changes.

This is using a build of the project_generator from the last release.

--disable options doesn't work from 1.9.2 onwards

There seems to be a regression in disabling components from 1.9.1 onwards.
Expanding on the simple no dependency build, adding --disable-encoders leaves lots of encoders enabled. This is the same for decoders, parsers etc.
project_generate.exe --enable-gpl --enable-version3 --disable-bzlib --disable-iconv --disable-zlib --disable-lzma --disable-sdl2 --toolchain=msvc --disable-encoders
Thanks,
Richard

Cannot find OpenCL headers?

I have installed Nvidia CUDA Toolkit 8.0.61 in e:\FFMPEG\CUDA and setting the env. variable CUDA_PATH=e:\FFMPEG\CUDA

Then:

project_generate.exe --enable-gpl --enable-version3 --enable-bzlib --enable-iconv --enable-lzma --enable-sdl2 --enable-zlib --enable-avisynth --enable-libfdk-aac --enable-dxva2 --enable-d3d11va --enable-nonfree --enable-libmp3lame --enable-libvorbis --enable-libspeex --enable-libopus --enable-libilbc --enable-libtheora --enable-libx264 --enable-libx265 --enable-libxvid --enable-libvpx --enable-libgme --enable-libmodplug --enable-libsoxr --enable-librtmp --enable-libfreetype --enable-fontconfig --enable-libfribidi --enable-libass --enable-libxml2 --enable-gnutls --enable-pic --enable-runtime-cpudetect --enable-gcrypt --enable-gmp --enable-libssh --enable-libcdio --enable-libbluray --enable-libmfx --enable-nvenc --enable-nvdec --enable-ffnvcodec --enable-opencl --enable-opengl --enable-cuda --enable-cuvid --enable-amf --toolchain=msvc
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Warning: Reserved option (pic) was passed in command line option (--enable-pic)
           This option is reserved and will be ignored
  Outputting config.h...
  Outputting avconfig.h...
  Outputting ffversion.h...
  Outputting enabled components file libavfilter/filter_list.c...
  Outputting enabled components file libavcodec/codec_list.c...
  Outputting enabled components file libavcodec/parser_list.c...
  Outputting enabled components file libavcodec/bsf_list.c...
  Outputting enabled components file libavformat/demuxer_list.c...
  Outputting enabled components file libavformat/muxer_list.c...
  Outputting enabled components file libavdevice/indev_list.c...
  Outputting enabled components file libavdevice/outdev_list.c...
  Outputting enabled components file libavformat/protocol_list.c...
  Generating from Makefile (../../ffmpeg/libavdevice/MakeFile)...
  Generating missing DCE symbols (libavdevice)...
  Generating project exports file (libavdevice)...
  Generating project file (libavdevice)...
  Generating from Makefile (../../ffmpeg/libavfilter/MakeFile)...
  Generating from Makefile (../../ffmpeg/libavfilter/x86/MakeFile)...
  Error: Could not find valid source file for object (opencl/avgblur)
Press any key to continue . . .

[Feature request] Add clang-cl support

clang-cl use exactly the same configurations with msvc because it pretends to be msvc on Windows platform by default. So I think it would not be too difficult to add clang-cl support.

PS. May I ask why your repo https://github.com/ShiftMediaProject/mpv is not updated for quite a while? It's not on the "Discontinued Projects" list, but it has not been updated for at least one year. It doesn't have a compiled release build as well, however, it's not on the "Non-ReDistributable Projects" list neither.

Project generation fails due to stdatomic

Content of ffvs_log.txt is this:

rgb2rgb.c
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\stdatomic.h(15): fatal error C1189: #error:  <stdatomic.h> is not yet supported when compiling as C, but this is planned for a future release.

When I try the generation with VS 2019 by running from a "Developer Command Prompt for VS 2019", I get an error about missing stdatomic, like here:

  Error: Errors detected during compilation :-
         error C1083: Cannot open include file: 'stdatomic.h': No such file or directory

It can be worked around by copying the stdatomic.h shim (which earlier versions of the generator were creating) to the project target folder before running generation. This works in both cases (2022 and 2019).

I'm not sure why you have removed it. It's still included in the full project repo: https://github.com/ShiftMediaProject/FFmpeg/tree/d31acdd6c739e9b1e2b01dc2f383052fe24b3751/SMP

BTW: Big thanks for maintaining this!

Deleted a bunch of files on my system

I ran the project generator once at a command prompt set to C:\Users\Dan just to see if it printed out a list of CLI options. It didn't. But what it did do is it deleted every single file folder in my entire user directory that started with ff or lib!!!!!

Luckily I have a nightly disk image I could use to restore everything, but what a PITA. Perhaps you could throw up a warning before you just blindly start deleting files.

DCE from header file definition

This patchset https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/295971.html
moves some code from .c files into header files, specifically affected is

    if (ARCH_AARCH64)
        ff_nlmeans_init_aarch64(dsp);

which breaks compilation now as the project generator does no longer create a DCE definition for it.

Please see my reply and the following discussion: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html

Andreas has posted a patch for it: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296380.html
but I'm not sure whether it will be merged.

Just wanted to let you know about it :-)

Some path resolution exceptions

The function ConfigGenerator::makeFileGeneratorRelative return "" when the relative path is ./.
And the code in ProjectGenerator::runMSVC

string projectDir = m_configHelper.m_solutionDirectory;
m_configHelper.makeFileGeneratorRelative(projectDir, projectDir);  // projectDir == ""
...
for (auto& i : includeDirs2) {
    ...
    // i == "$(ProjectDir)/../compat/atomics/win32/"
    findPos2 = i.find("$(ProjectDir)");
            if (findPos2 != string::npos) {
                // i == "/../compat/atomics/win32/", ERROR!!!
                // It should be "./../compat/atomics/win32/" or "../compat/atomics/win32/"
                i.replace(findPos2, 13, projectDir);
            }
   ...
}

I am sorry for my pool English.

last release failing on avfilter

Hi
you had a commit to address the avfilter api change (FFmpeg/FFmpeg@8f1382f#diff-69f1b53ffbf52f3927df987561b6e9b2); yet I get the following error with project-generate.exe (with the no-redist script):

Invalid switch - "".
Error: Errors detected during compilation :-
error C2065: 'ff_abench_filter': undeclared identifier
error C2065: 'ff_acompressor_filter': undeclared identifier
error C2065: 'ff_acontrast_filter': undeclared identifier
error C2065: 'ff_acopy_filter': undeclared identifier
error C2065: 'ff_acue_filter': undeclared identifier
error C2065: 'ff_acrossfade_filter': undeclared identifier
error C2065: 'ff_acrusher_filter': undeclared identifier
error C2065: 'ff_adeclick_filter': undeclared identifier
error C2065: 'ff_adeclip_filter': undeclared identifier
error C2065: 'ff_adelay_filter': undeclared identifier
error C2065: 'ff_aderivative_filter': undeclared identifier
error C2065: 'ff_aecho_filter': undeclared identifier
error C2065: 'ff_aemphasis_filter': undeclared identifier
error C2065: 'ff_aeval_filter': undeclared identifier
error C2065: 'ff_afade_filter': undeclared identifier
error C2065: 'ff_afftfilt_filter': undeclared identifier
error C2065: 'ff_afir_filter': undeclared identifier
error C2065: 'ff_aformat_filter': undeclared identifier
error C2065: 'ff_agate_filter': undeclared identifier
error C2065: 'ff_aiir_filter': undeclared identifier
error C2065: 'ff_aintegral_filter': undeclared identifier
error C2065: 'ff_ainterleave_filter': undeclared identifier
error C2065: 'ff_alimiter_filter': undeclared identifier
error C2065: 'ff_allpass_filter': undeclared identifier
error C2065: 'ff_aloop_filter': undeclared identifier
error C2065: 'ff_amerge_filter': undeclared identifier
error C2065: 'ff_ametadata_filter': undeclared identifier
error C2065: 'ff_amix_filter': undeclared identifier
error C2065: 'ff_anequalizer_filter': undeclared identifier
error C2065: 'ff_anull_filter': undeclared identifier
error C2065: 'ff_apad_filter': undeclared identifier
error C2065: 'ff_aperms_filter': undeclared identifier
error C2065: 'ff_aphaser_filter': undeclared identifier
error C2065: 'ff_apulsator_filter': undeclared identifier
error C2065: 'ff_arealtime_filter': undeclared identifier
error C2065: 'ff_aresample_filter': undeclared identifier
error C2065: 'ff_areverse_filter': undeclared identifier
error C2065: 'ff_aselect_filter': undeclared identifier
error C2065: 'ff_asendcmd_filter': undeclared identifier
error C2065: 'ff_asetnsamples_filter': undeclared identifier
error C2065: 'ff_asetpts_filter': undeclared identifier
error C2065: 'ff_asetrate_filter': undeclared identifier
error C2065: 'ff_asettb_filter': undeclared identifier
error C2065: 'ff_ashowinfo_filter': undeclared identifier
error C2065: 'ff_asidedata_filter': undeclared identifier
error C2065: 'ff_asplit_filter': undeclared identifier
error C2065: 'ff_astats_filter': undeclared identifier
error C2065: 'ff_astreamselect_filter': undeclared identifier
error C2065: 'ff_atempo_filter': undeclared identifier
error C2065: 'ff_atrim_filter': undeclared identifier
error C2065: 'ff_bandpass_filter': undeclared identifier
error C2065: 'ff_bandreject_filter': undeclared identifier
error C2065: 'ff_bass_filter': undeclared identifier
error C2065: 'ff_biquad_filter': undeclared identifier
error C2065: 'ff_channelmap_filter': undeclared identifier
error C2065: 'ff_channelsplit_filter': undeclared identifier
error C2065: 'ff_chorus_filter': undeclared identifier
error C2065: 'ff_compand_filter': undeclared identifier
error C2065: 'ff_compensationdelay_filter': undeclared identifier
error C2065: 'ff_crossfeed_filter': undeclared identifier
error C2065: 'ff_crystalizer_filter': undeclared identifier
error C2065: 'ff_dcshift_filter': undeclared identifier
error C2065: 'ff_drmeter_filter': undeclared identifier
error C2065: 'ff_dynaudnorm_filter': undeclared identifier
error C2065: 'ff_earwax_filter': undeclared identifier
error C2065: 'ff_ebur128_filter': undeclared identifier
error C2065: 'ff_equalizer_filter': undeclared identifier
error C2065: 'ff_extrastereo_filter': undeclared identifier
error C2065: 'ff_firequalizer_filter': undeclared identifier
error C2065: 'ff_flanger_filter': undeclared identifier
error C2065: 'ff_haas_filter': undeclared identifier
error C2065: 'ff_hdcd_filter': undeclared identifier
error C2065: 'ff_headphone_filter': undeclared identifier
error C2065: 'ff_highpass_filter': undeclared identifier
error C2065: 'ff_highshelf_filter': undeclared identifier
error C2065: 'ff_join_filter': undeclared identifier
error C2065: 'ff_loudnorm_filter': undeclared identifier
error C2065: 'ff_lowpass_filter': undeclared identifier
error C2065: 'ff_lowshelf_filter': undeclared identifier
error C2065: 'ff_mcompand_filter': undeclared identifier
error C2065: 'ff_pan_filter': undeclared identifier
error C2065: 'ff_replaygain_filter': undeclared identifier
error C2065: 'ff_sidechaincompress_filter': undeclared identifier
error C2065: 'ff_sidechaingate_filter': undeclared identifier
error C2065: 'ff_silencedetect_filter': undeclared identifier
error C2065: 'ff_silenceremove_filter': undeclared identifier
error C2065: 'ff_stereotools_filter': undeclared identifier
error C2065: 'ff_stereowiden_filter': undeclared identifier
error C2065: 'ff_superequalizer_filter': undeclared identifier
error C2065: 'ff_surround_filter': undeclared identifier
error C2065: 'ff_treble_filter': undeclared identifier
error C2065: 'ff_tremolo_filter': undeclared identifier
error C2065: 'ff_vibrato_filter': undeclared identifier
error C2065: 'ff_volume_filter': undeclared identifier
error C2065: 'ff_volumedetect_filter': undeclared identifier
error C2065: 'ff_aevalsrc_filter': undeclared identifier
error C2065: 'ff_anoisesrc_filter': undeclared identifier
error C2065: 'ff_anullsrc_filter': undeclared identifier
error C2065: 'ff_hilbert_filter': undeclared identifier
error C2065: 'ff_sine_filter': undeclared identifier
error C2065: 'ff_anullsink_filter': undeclared identifier
error C1003: error count exceeds 100; stopping compilation
Unknown error detected. See ffvs_log.txt for further details. '

This is with ffmpeg master , last release of ffvs (but i get the same when home compiling ffvs)
ffvs_log.txt repeats the following for each filter:
./ffmpeg/SMP/libavfilter/filter_list.c(22): error C2065: 'ff_abench_filter': undeclared identifier (compiling source file ffmpeg/libavfilter/allfilters.c)

some improvements to the bat code

Thank you for your excellent work!

Some of the bat code in the project needed to be modified in my environment in order to continue to run. This is mostly my own problem, but I'd like to say what I think anyway.

1. Find cl.exe

if \"%SYSARCH%\"==\"32\" (\n\
set MSVCVARSDIR=\n\
set VSWHERE=\"%ProgramFiles%\\Microsoft Visual Studio\\Installer\\vswhere.exe\"\n\
) else if \"%SYSARCH%\"==\"64\" (\n\
set MSVCVARSDIR=\\amd64\n\
set VSWHERE=\"%ProgramFiles(x86)%\\Microsoft Visual Studio\\Installer\\vswhere.exe\"\n\
)\n\
if exist %VSWHERE% (\n\
for /f \"usebackq delims=\" %%i in (`%VSWHERE% -prerelease -latest -property installationPath`) do (set VSINSTDIR=%%i)\n\
if exist \"!VSINSTDIR!\\VC\\Auxiliary\\Build\\vcvars%SYSARCH%.bat\" (\n\
call \"!VSINSTDIR!\\VC\\Auxiliary\\Build\\vcvars%SYSARCH%.bat\" >nul 2>&1\n\
goto MSVCVarsDone\n\
)\n\
if exist \"!VSINSTDIR!\\..\\..\\VC\\bin%MSVCVARSDIR%\\vcvars%SYSARCH%.bat\" (\n\
call \"!VSINSTDIR!\\..\\..\\VC\\bin%MSVCVARSDIR%\\vcvars%SYSARCH%.bat\" >nul 2>&1\n\
goto MSVCVarsDone\n\
)\n\

On my win10 x64 system, the value of %ProgramFiles(x86)% is C:\Program. It is wrong....
So what about %ProgramFiles% (x86) ? Seems to work fine.

On the other hand, users like me prefer to use the "Tools Command Prompt", in which case cl.exe can be found directly, so perhaps we can just determine if cl.exe is ready to run at the start:

call cl.exe && goto MSVCVarsDone

2. Find git

smp_project_get_dependencies file:

REM Check if git is installed and available
IF "%MSVC_VER%"=="" (
    git status >NUL 2>&1
    IF ERRORLEVEL 1 (
        ECHO A working copy of git was not found. To use this script you must first install git for windows.
        GOTO exitOnError
    )
)

Similarly, perhaps it could be changed to check if git.exe can be executed

Lots of errors during avcodec project generation

Hi,
when starting the generator against FFmpeg master (git head 02ba4b9 ) I have a lot of errors thrown:

E:\Downloads\visual-studio\FFVS> .\smp_project_generate_noredist.bat
Located FFmpeg source directory at "./ffmpeg/"

Creating project_get_dependencies.bat...

Do you want to download/update the required dependency projects (Y/N)?n
Running project generator...
Project generator (this may take several minutes, please wait)...
Passing configure file...
Outputting config.h...
Outputting avconfig.h...
Outputting ffversion.h...
Outputting enabled components file libavcodec/bsf_list.c...
Outputting enabled components file libavformat/protocol_list.c...
Generating from Makefile (./ffmpeg/libavcodec/MakeFile)...
Generating from Makefile (./ffmpeg/libavcodec/x86/MakeFile)...
Generating missing DCE symbols (libavcodec)...
Generating project exports file (libavcodec)...
Invalid switch - "".
Error: Errors detected during compilation :-
error C2143: syntax error: missing ':' before ','
error C2059: syntax error: ','
error C2059: syntax error: '}'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2371: 'PutBitContext': redefinition; different basic types
error C2143: syntax error: missing ';' before ''
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before '
'
error C2143: syntax error: missing '{' before ''
error C2371: 'PutBitContext': redefinition; different basic types
error C2143: syntax error: missing ';' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2371: 'PutBitContext': redefinition; different basic types
error C2143: syntax error: missing ';' before ''
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before '
'
error C2143: syntax error: missing '{' before ''
error C2371: 'PutBitContext': redefinition; different basic types
error C2143: syntax error: missing ';' before '
'
error C2059: syntax error: 'type'
error C2059: syntax error: ')'
error C2143: syntax error: missing ')' before ''
error C2143: syntax error: missing '{' before '
'
error C2371: 'PutBitContext': redefinition; different basic types
error C2143: syntax error: missing ';' before ''
error C2059: syntax error: ')'
error C2054: expected '
error C2065: 'JLSState': undeclared identifier
error C2297: '
': illegal, right operand has type 'int *'
error C2065: 'JLSState': undeclared identifier
error C2059: syntax error: '='
error C2223: left of '->bpp' must point to struct/union
Unknown error detected. See ffvs_log.txt for further details.
`
Here's the ffvs.log
ffvs_log.txt

First time I'm having this kind of error, so I don't know how to fix it.

nvenc / nvdec supported?

nvenc requires ffnvcodec, but it seems this dependency cannot be specified?

Does your excellent generator support nvenc/nvdec?

error with decklink

hi,
i've been having trouble with decklink with the current and previous versions of the generator.
Project generator (this may take several minutes, please wait)... Passing configure file... Outputting config.h... Outputting avconfig.h... Outputting ffversion.h... Outputting enabled components file libavcodec/bsf_list.c... Outputting enabled components file libavformat/protocol_list.c... Generating from Makefile (./ffmpeg/libavcodec/MakeFile)... Generating from Makefile (./ffmpeg/libavcodec/x86/MakeFile)... Generating missing DCE symbols (libavcodec)... Generating project exports file (libavcodec)... Generating project file (libavcodec)... Generating from Makefile (./ffmpeg/libavdevice/MakeFile)... Generating missing DCE symbols (libavdevice)... Generating project exports file (libavdevice)... Invalid switch - "". Error: Errors detected during compilation :- error C1189: #error: The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro. Unknown error detected. See ffvs_log.txt for further details.

The ffvs log indicates:

`alldevices.c

avdevice.c
utils.c
file_open.c
decklink_enc_c.c
decklink_dec_c.c
dshow_crossbar.c
dshow.c
dshow_enummediatypes.c
dshow_enumpins.c
dshow_filter.c
dshow_pin.c
dshow_common.c
gdigrab.c
lavfi.c
vfwcap.c
reverse_wrap.c
dce_defs.c
decklink_enc.cpp
decklink_common.cpp
decklink_dec.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xkeycheck.h(250): fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro. (compiling source file ffmpeg/libavdevice/decklink_enc.cpp)`

Do you have an idea ?
Thanks

stuck on dce symbols for libavcodec on latest 1.6.4 (regression from 1.6.3)

hi,
with the latest release 1.6.4, the generator gets stuck at DCE generation for libavcodec but this does not occur with 1.6.3;

error message is
.\project_generate.exe --enable-gpl --enable-version3 --enable-nonfree --enable-libv orbis --enable-libopus --enable-libtheora --enable-libx264 --disable-schannel --disable-iconv --disable-zlib --disable-s dl2 --disable-ffplay --disable-ffprobe --disable-ffserver --disable-bzlib --disable-lzma --toolchain=msvc Project generator (this may take several minutes, please wait)... Passing configure file... Outputting config.h... Outputting avconfig.h... Outputting ffversion.h... Outputting enabled components file libavcodec/bsf_list.c... Outputting enabled components file libavformat/protocol_list.c... Generating from Makefile (./ffmpeg/libavcodec/MakeFile)... Generating from Makefile (./ffmpeg/libavcodec/x86/MakeFile)... Generating missing DCE symbols (libavcodec)... Invalid switch - "". Error: Errors detected during compilation :- 'cl.exe' is not recognized as an internal or external command, Based on the above error(s) Visual Studio is not installed correctly on the host system. Install a compatible version of Visual Studio before trying again.

I've checked that with previous generator 1.6.3 all goes well with same command with exactly same options.

So this is probably a regression from something committed after 1.6.3.
regards

DebugDLLStaticDeps

Hi Sibras

I have a problem with this build and DebugDLLStaticDeps / Template

Thanks for your work !!

Gérard

Error: CUDA files detected in project. CUDA compilation is not currently supported

Generating missing DCE symbols (libavdevice)...
Generating project exports file (libavdevice)...
Generating project file (libavdevice)...
Generating from Makefile (../ffmpeg/libavfilter/MakeFile)...
Generating from Makefile (../ffmpeg//libavfilter/dnn/Makefile)...
Generating from Makefile (../ffmpeg/libavfilter/x86/MakeFile)...
Generating missing DCE symbols (libavfilter)...
Generating project exports file (libavfilter)...
Generating project file (libavfilter)...
Error: CUDA files detected in project. CUDA compilation is not currently supported
Generating from Makefile (../ffmpeg/libswscale/MakeFile)...
Generating from Makefile (../ffmpeg/libswscale/x86/MakeFile)...
Generating missing DCE symbols (libswscale)...
Generating project exports file (libswscale)...
Generating project file (libswscale)...

platform: WIN7X64+CUDA10.0

is not support WIN7X64+CUDA10.0 ?

error C1083: Cannot open include file: 'mfx/mfxvideo.h': No such file or directory

Getting the following when running noredist :

Ensure that any dependency projects have been built using the supplied project within the dependencies ./SMP folder before continuing.
Warning: Some used dependencies require a manual download. Consult the readme for instructions to install the following needed components:
   OpenGL, CUDA
Press any key to continue . . .
Running project generator...
Project generator (this may take several minutes, please wait)...
  Passing configure file...
  Outputting config.h...
  Outputting avconfig.h...
  Outputting ffversion.h...
  Outputting enabled components file libavfilter/filter_list.c...
  Outputting enabled components file libavcodec/codec_list.c...
  Outputting enabled components file libavcodec/parser_list.c...
  Outputting enabled components file libavcodec/bsf_list.c...
  Outputting enabled components file libavformat/demuxer_list.c...
  Outputting enabled components file libavformat/muxer_list.c...
  Outputting enabled components file libavdevice/indev_list.c...
  Outputting enabled components file libavdevice/outdev_list.c...
  Outputting enabled components file libavformat/protocol_list.c...
  Generating from Makefile (../../ffmpeg/libavcodec/MakeFile)...
  Generating from Makefile (../../ffmpeg/libavcodec/x86/MakeFile)...
  Generating missing DCE symbols (libavcodec)...
  Generating project exports file (libavcodec)...
Invalid switch - "".
  Error: Errors detected during compilation :-
         error C1083: Cannot open include file: 'mfx/mfxvideo.h': No such file or directory
         Based on the above error(s) there are files required for dependency libraries that are not available
         Ensure that any required dependencies are available in 'OutDir' based on the supplied configuration options before trying again.
         Consult the supplied readme for instructions for installing varying dependencies.
         If a dependency has been cloned from a ShiftMediaProject repository then ensure it has been successfully built before trying again.
           Removing the offending configuration option can also be used to remove the error.
Press any key to continue . . .

FFmpeg tag/checkout as 3.4.2.r91261

Failed to copy DCE file

I get the following error.
Error: Failed to copy dce file (libavcodec/x86/flacdsp_init.c) to temporary directory (FFVSTemp/libavcodec/libavcodec/x86/flacdsp_init.c)

I used FFMpeg from your GitHub and from ffmpeg's github but in both the cases I get the same error. I have also tried running the program in admin mode but that also didn't work. Here are my system specs

Windows 10 x64
Both Visual studio 2015 and 2017
Intel compiler 17 update 2
GCC 7 x64
No YASM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.