Giter Site home page Giter Site logo

Comments (13)

Sibras avatar Sibras commented on May 27, 2024

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.

JiffyChen avatar JiffyChen commented on May 27, 2024

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.

Sibras avatar Sibras commented on May 27, 2024

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.

JiffyChen avatar JiffyChen commented on May 27, 2024

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.

Sibras avatar Sibras commented on May 27, 2024

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.

Sibras avatar Sibras commented on May 27, 2024

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.

JiffyChen avatar JiffyChen commented on May 27, 2024

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.

Sibras avatar Sibras commented on May 27, 2024

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.

pkviet avatar pkviet commented on May 27, 2024

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.

Sibras avatar Sibras commented on May 27, 2024

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.

pkviet avatar pkviet commented on May 27, 2024

oh I see. Thanks a lot. Kudos for your wonderful work with these projects !

from ffvs-project-generator.

yunhai2009 avatar yunhai2009 commented on May 27, 2024

@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.

Sibras avatar Sibras commented on May 27, 2024

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)

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.