ShiftMediaProject / FFVS-Project-Generator

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error: Failed opening file (SMP/)

duiniuluantanqin opened this issue · comments

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.

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.

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/)

Version 1.11.4 should fix this, try that

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

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.

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);

    ......

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