ShiftMediaProject / FFVS-Project-Generator

A program that can scan existing FFmpeg/LibAV source files and dynamically generate a Visual Studio project file.
GNU Lesser General Public License v2.1
176 stars 77 forks source link

Error: Failed opening file (SMP/) #47

Closed duiniuluantanqin closed 2 years ago

duiniuluantanqin commented 2 years ago

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.

Sibras commented 2 years ago

Try the latest 1.11.3 version.

If you still have issues then can you also provide the directory that the ffmpeg source resides in and the directory that you are running FFVS from.

duiniuluantanqin commented 2 years ago

i try 1.11.3 version, and error still exists. my directory like this:

-  msvc       
-> source
        -> FFmpeg
               - SMP
               - project_generate.exe
               - libavcodec
               - libavformat
               - others
        - ..Any other libraries source code..

the output like this:

.\project_generate.exe
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)...
  Error: Failed opening file (SMP/)
Sibras commented 2 years ago

Version 1.11.4 should fix this, try that

duiniuluantanqin commented 2 years ago

Thank you for your reply. however, i got another error with version 1.11.4, the output like this

.\project_generate.exe
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)...
  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)...
Invalid switch - "".
  Error: Errors detected during compilation :-
         error C2001: newline in constant
         error C2143: syntax error: missing ')' before 'else'
         Unknown error detected. See ffvs_log.txt for further details.
Press any key to continue . . .

and the ffvs_log.txt as follows:

threadmessage.c
time.c
timecode.c
tree.c
twofish.c
utils.c
xga_font_data.c
xtea.c
tea.c
tx.c
tx_float.c
tx_double.c
tx_int32.c
version.c
video_enc_params.c
film_grain_params.c
hwcontext_cuda_wrap.c
hwcontext_d3d11va_wrap.c
libavutil/tx.c(350): error C2001: newline in constant
hwcontext_dxva2_wrap.c
libavutil/tx.c(351): error C2143: syntax error: missing ')' before 'else'
dce_defs.c
Sibras commented 2 years ago

What version of ffmpeg source are you using? That error is a compiler error stating that libavutil/tx.c is not compilable, which suggests it has been modified in someway. So check you source version for any changes.

duiniuluantanqin commented 2 years ago

I resolve this issue with changed a character "∞" to "?", in line 350, file libavutil/tx.c. but i don`t understand why. Maybe it's the encoding format? My operating system language is simplified Chinese. the code is as follows:

static void print_cd_info(const FFTXCodelet *cd, int prio, int print_prio)
{
    AVBPrint bp = { 0 };
    av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);

    av_bprintf(&bp, "%s - type: ", cd->name);

    print_type(&bp, cd->type);

    av_bprintf(&bp, ", len: ");
    if (cd->min_len != cd->max_len)
        av_bprintf(&bp, "[%i, ", cd->min_len);

    if (cd->max_len == TX_LEN_UNLIMITED)
        av_bprintf(&bp, "?");  // ---->>change '∞' to '?'<<----
    else
        av_bprintf(&bp, "%i", cd->max_len);

    ......
Sibras commented 2 years ago

Its a char encoding issue. Ive added a commit that should hopefully work around this error