Comments (13)
Ive made some code fixes in the repo that should clear up some of these issues (ill update the latest release build in a couple of days).
However, you might have to adjust your command line a little. For one your trying to enable h264_vaapi despite VAAPI not being available on windows. But mainly you cant use 'hardcoded-tables' option so you may want to look at whether you really want to use that option (as it makes the output binaries much larger which goes against also trying to use the 'small' option, also most systems that run windows wont see a performance increase from using this option but will end up using more memory so thats why its not currently supported).
from ffvs-project-generator.
I changed the option(delete small,hardcoded-tables ,h264_vaapi ) and update to last master changed , but none project files and config.h or config.asm be created.
stop info:
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
SET PGOPTIONS= ^
--disable-everything ^
--enable-ffmpeg ^
--enable-ffplay ^
--enable-gpl ^
--enable-version3 ^
--enable-nonfree ^
--enable-zlib ^
--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 ^
--enable-decoder=h264 ^
--enable-decoder=aac ^
--enable-encoder=aac ^
--enable-encoder=libspeex ^
--enable-encoder=libx264 ^
--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
from ffvs-project-generator.
Ive tried your previous command line options and it works fine. The point you said it stops is during the generation of DCE symbols, this just takes some time to complete as it has to scan the entire code base. Depending on how fast your cpu is it may take a minute or two, so you just need to wait for it to finish.
from ffvs-project-generator.
I created a new version based on this master (X86/release), and placed it in the FFMpeg(FFMpeg(https://github.com/ShiftMediaProject/FFmpeg/tree/master/SMP)) directory along with those files ( project_generate.exe、smp_project_get_dependencies and smp_project_generate_noredist.bat), Then use the above parameters, However, it automatically exits when during the generation of DCE symbols, I debug the program , found line 243 in projectGenerator_dce.cpp will copy of libavcodec\x86 similar to the flacdsp_init.i file, But there is no such files , so it runs to return false and quit.
I found the 189、244 line of code in projectGenerator_dce.cpp might be wrong
line 189
string sFile = sProjectName + '/' + itDCE->second.sFile.substr(uiPos);
maybe
string sFile = “./SMB/” + itDCE->second.sFile.substr(uiPos);
line244
if (!loadFromFile(sFile, sFile)) {
return false;
}
maybe
if (!loadFromFile(itDCE->first, sFile)) {
return false;
}
Git is a bit slow to communicate. Can you help me by email ?My email address is [email protected] ,thank you sir!
from ffvs-project-generator.
OK , ill investigate this as having the project_generate.exe placed in the SMP sub-directory is not something that ive tested. In the meantime place the project_generate.exe and associated files in a directory along side the ffmpeg source code directory (e.g. if ffmpeg source code is in d:/somefolder/ffmpeg/, then place project_generate.exe in d:/somefolder/FFVS/) and run it from there.
from ffvs-project-generator.
I pushed a commit to the repo that I think should fix your issue. Try it out and let me know.
from ffvs-project-generator.
After update the last master version, then
In accordance with the directory you provided, I tried again and still failed
maybe error in line 179 projectGenerator_compiler.cpp , I guess it will not return false, because it is test ,but it return false。
the project directory path like this:
D:/somefolder/FFVS/project_generate.exe...
or
D:/somefolder/ffmpeg/FFVS/project_generate.exe...
D:/somefolder/bzip2
D:/somefolder/fdk-aac
...
D:/somefolder/ffmpeg/
D:/somefolder/ffmpeg/compat
D:/somefolder/ffmpeg/libavcodec
...
error message info:
Generating missing DCE symbols (libavcodec)...
Generating project exports file (libavcodec)...
Invalid switch - ""。
Error: Errors detected during test compilation :-
error C1083: Cannot open include file: 'iconv.h': No such file or direc
tory
error C1083: Cannot open include file: 'iconv.h': No such file or direc
tory
Based on the above error(s) there are files required for dependency lib
raries that are not available
Ensure that any required dependencies are available in 'OutDir' based o
n the supplied configuration options before trying again.
Consult the supplied readme for instructions for installing varying dep
endencies.
If a dependency has been cloned from a ShiftMediaProject repository the
n ensure it has been successfully built before trying again.
Removing the offending configuration option can also be used to remov
e the error.
Press any key to continue . .
I changed the line 179 of projectGenerator_compiler.cpp and shielding it ,but found generation projecs files all error, The wrong first line is n="1.0" encoding="utf-8"?>
。。。 to n="1.0" encoding="utf-8"?>
I moved the lines manually, Finally, only 4 projects failed to compile, error message info:
2>allformats.obj : error LNK2019: An unresolved external symbol _avcodec_register_all...
2>oggparseflac.obj : error LNK2001: An unresolved external symbol _avcodec_alloc_context3
2>dump.obj : error LNK2001: An unresolved external symbol _avcodec_alloc_context3
2>utils.obj : error LNK2001: An unresolved external symbol _avcodec_alloc_context3
2>ffmdec.obj : error LNK2001: An unresolved external symbol _avcodec_alloc_context3
2>ffmenc.obj : error LNK2001: An unresolved external symbol _avcodec_alloc_context3
2>oggparseflac.obj : error LNK2001: An unresolved external symbol _avcodec_free_context
2>dump.obj : error LNK2001: An unresolved external symbol _avcodec_free_context
2>utils.obj : error LNK2001: An unresolved external symbol _avcodec_free_context
...
from ffvs-project-generator.
That error is not an error in FFVS. That is a legitimate error message because you have used a configuration command line that enables several dependencies that are not available. So all you have to do is exactly what it tells you to:
From the error message:
"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."
You have tried creating a ffmpeg library with iconv enabled. This requires the iconv headers and lib to be available. The error message is telling you that you havent made them available and so those configure options wont work.
In your case you have used a modified version of the noredist .bat script which will clone all the libraries that are used in the default noredists build. You don't need most of these projects as you modified the script so you only need the ones being used by the configuration options you changed it to.
So again following the error message it gave you:
"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."
So just do as it says, open up the download project repos for the projects you want to use (from the command line you gave it appears your trying to use speex, x264, sdl, iconv, zlib, bzip2, liblzma) and build the projects using the VS solution from the included SMP folders. If you dont want to do that then you have to disable the use of those dependencies by changing your command line.
from ffvs-project-generator.
hello,
let me interject.
I have the same error messages with iconv.h although I am not using libiconv .
Here is my setup in the smp_project_generate_noredist.bat file : SET DEPENDENCIES=( ^ fdk-aac, ^ libvpx, ^ opus, ^ x264, ^ ) SET PGOPTIONS=--enable-gpl --enable-version3 --enable-nonfree --enable-libopus --enable-libx264 --enable-libvpx --enable-libfdk-aac --toolchain=msvc
And here is the command-line output :
E:\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)?y
Getting and updating any required dependency libs...
fdk-aac: Existing folder found. Checking for updates...
fdk-aac: Repository up to date.
libvpx: Existing folder found. Checking for updates...
libvpx: Repository up to date.
opus: Existing folder found. Checking for updates...
opus: Repository up to date.
x264: Existing folder found. Checking for updates...
x264: Repository up to date.
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, NVENC, 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 f
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/)...
Generating from Makefile (../ffmpeg/libavcodec/x86/)...
Generating missing DCE symbols (libavcodec)...
Generating project exports file (libavcodec)...
Invalid switch - "".
Error: Errors detected during test compilation :-
error C1083: Cannot open include file: 'iconv.h': No such file or directory
error C1083: Cannot open include file: 'iconv.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 . . .
from ffvs-project-generator.
FFVS uses the configure script found in the FFmpeg source code in order to build a VS project using the same rules that are specified in the loaded configure file. By default FFmpeg enables zlib, bzip2, iconv and lzma in configure and so FFVS just follows that. So if you want to build a project not using one of these libs then you have to manually disable them on the command line. This is the exact same command line that you would pass if building FFmpeg normally as FFVS uses identical syntax.
from ffvs-project-generator.
oh I see. Thanks a lot. Kudos for your wonderful work with these projects !
from ffvs-project-generator.
@Sibras when i use following config,then can not generate libavcodec.I use the latest code
E:\VS-Projects\FFmpeg-3.3.1.r86290\FFVS-Project-Generator\bin>project_generate.xe --disable-bsf=extract_extradata --disable-encoders --disable-decoders --enabe-decoder=aac --enable-decoder=aac_at --enable-decoder=aac_fixed --enable-decodr=aac_latm --enable-decoder=h264 --enable-decoder=h264_crystalhd --enable-decodr=h264_cuvid --enable-decoder=h264_mediacodec --enable-decoder=h264_mmal --enabe-decoder=h264_qsv --enable-decoder=h264_vda --enable-decoder=h264_vdpau --disale-muxers --disable-demuxers --enable-demuxer=aac --enable-demuxer=asf --enabledemuxer=asf_o --enable-demuxer=rtp --enable-demuxer=rtsp --enable-demuxer=h264-enable-demuxer=hls --enable-demuxer=mpegts --enable-demuxer=mpegts --disable-prsers --enable-parser=aac --enable-parser=h264 --enable-parser=mpegaudio --enabe-parser=aac_latm --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-bsfs --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/libavfilter/)...
Generating from Makefile (../../ffmpeg/libavfilter/x86/)...
Generating missing DCE symbols (libavfilter)...
Generating project exports file (libavfilter)...
Generating project file (libavfilter)...
Generating from Makefile (../../ffmpeg/libavutil/)...
Generating from Makefile (../../ffmpeg/libavutil/x86/)...
Generating missing DCE symbols (libavutil)...
Generating project exports file (libavutil)...
Generating project file (libavutil)...
Generating from Makefile (../../ffmpeg/libpostproc/)...
Generating missing DCE symbols (libpostproc)...
Generating project exports file (libpostproc)...
Generating project file (libpostproc)...
Generating from Makefile (../../ffmpeg/libswresample/)...
Generating from Makefile (../../ffmpeg/libswresample/x86/)...
Generating missing DCE symbols (libswresample)...
Generating project exports file (libswresample)...
Generating project file (libswresample)...
Generating from Makefile (../../ffmpeg/libswscale/)...
Generating from Makefile (../../ffmpeg/libswscale/x86/)...
Generating missing DCE symbols (libswscale)...
Generating project exports file (libswscale)...
Generating project file (libswscale)...
Generating solution file...
Completed Successfully
from ffvs-project-generator.
You've got a lot of typos in that command line so I assume that it is not exactly the one that you used. Anyway i cleaned it up and tested it locally and the above behavior is expected. avcodec requires the null_bsf to be enabled which you have explicitly disabled in your command line so avcodec cannot be built.
You need to add --enable-bsf=null to the end of your command line to get avcodec to build. You should also make sure you are using the latest 1.5.7 build.
Also you are trying to explicitly enable several things that just arent possible on windows (vda vdpau etc. are linux only, also crystalhd, mediacodec, mmal are all only available on different platforms. dxva is the windows equivalent for hardware decoders and is enabled by default). This wont have any impact on the output as these lines will be ignored as they are impossible but i thought id just point that out.
And for future reference this is a separate issue so you should have opened this as a new bug.
from ffvs-project-generator.
Related Issues (20)
- How to change code to support to generate vs2022 solution HOT 2
- Is it possible to generate a solution that only builds a few specific decoders and nothing else? HOT 17
- some improvements to the bat code
- Project generation fails due to stdatomic HOT 12
- Definition of `HAVE_AV_CONFIG_H` in tools projects HOT 1
- DCE from header file definition
- Static compile with libx264 HOT 6
- Error: Failed opening file (SMP/) HOT 7
- Wrapper Files HOT 3
- Invalid switch - "" Error HOT 3
- Could not work for ffmpeg 5.1 HOT 2
- Error: Could not find valid source file for object (fftoolsres)
- can not support multiples components with one option: --enable-demuxer=mov,m4v HOT 1
- and no avcodec project file? HOT 7
- vcruntime.h and av_cmp_q HOT 1
- Some path resolution exceptions
- Unable to disable assembly optimizations HOT 1
- Unable to find Git HOT 2
- Cannot find GL & SDL even after putting them , please help HOT 4
- pthread.h not found invalid switch error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffvs-project-generator.