GrandAdmiralThrawn
22nd September 2015, 13:05
Hello!
I'm not exactly sure whether this is the correct subforum, my apologies if it's the wrong one.
I noticed that modern, official x264 builds from [here (http://download.videolan.org/pub/videolan/x264/binaries/)] fail to load any of my AviSynth scripts (GraphEdit says my filter graph for *.avs is fine, I can play them in Windows Media Player, and it *does* work with more ancient versions of x264 just fine!). The error I get is simply like that:
lavf [error]: could not open input file
x264 [error]: could not open input file `input.avs' via any method!
So I thought if libav can't read it, I'd just build a new libav 11.4 myself, plus x264, because I am using x264's commandline tool directly. So the "linking chain" is like x264 ==linked against==> libav ==linked against==> AviSynth. I tried that on CygWin.
I have trouble linking libav 11.4 against AviSynth 2.6 however (configure option "--enable-avisynth"). At first I used the avisynth_c.h header that comes with AviSynth itself. And these errors came up while building libav using GCC 4.3.4 on a 32-Bit CygWin (avisynth_c.h is being included just fine according to config.log):
libavformat/avisynth.c:48:35: warning: avxsynth/avxsynth_c.h: No such file or directory
libavformat/avisynth.c:63: error: expected specifier-qualifier-list before 'avs_bit_blt_func'
libavformat/avisynth.c:81: error: expected specifier-qualifier-list before 'AVS_ScriptEnvironment'
libavformat/avisynth.c:100: error: 'AVS_PLANAR_Y' undeclared here (not in a function)
libavformat/avisynth.c:101: error: 'AVS_PLANAR_U' undeclared here (not in a function)
libavformat/avisynth.c:102: error: 'AVS_PLANAR_V' undeclared here (not in a function)
libavformat/avisynth.c: In function 'avisynth_load_library':
libavformat/avisynth.c:126: error: 'AviSynthLibrary' has no member named 'avs_bit_blt'
libavformat/avisynth.c:126: error: 'AviSynthLibrary' has no member named 'avs_bit_blt'
libavformat/avisynth.c:127: error: 'AviSynthLibrary' has no member named 'avs_clip_get_error'
libavformat/avisynth.c:127: error: 'AviSynthLibrary' has no member named 'avs_clip_get_error'
libavformat/avisynth.c:128: error: 'AviSynthLibrary' has no member named 'avs_create_script_environment'
libavformat/avisynth.c:128: error: 'AviSynthLibrary' has no member named 'avs_create_script_environment'
libavformat/avisynth.c:129: error: 'AviSynthLibrary' has no member named 'avs_delete_script_environment'
libavformat/avisynth.c:129: error: 'AviSynthLibrary' has no member named 'avs_delete_script_environment'
libavformat/avisynth.c:130: error: 'AviSynthLibrary' has no member named 'avs_get_audio'
libavformat/avisynth.c:130: error: 'AviSynthLibrary' has no member named 'avs_get_audio'
The errors go on and on, there's many more of the similar kind.
So then I read libavformat/avisynth.c, and there is a comment at the beginning of the source code telling me that I need to get the avisynth_c.h that comes with x264 itself, instead of the one from AviSynth 2.6. So indeed, the latest x264 does have that header included, so I linked against that instead. But the same errors happened again.
Am I doing something very wrong here? How exactly should I compile and link libav-11.4 against AviSynth 2.6 on Windows?
Thanks!
I'm not exactly sure whether this is the correct subforum, my apologies if it's the wrong one.
I noticed that modern, official x264 builds from [here (http://download.videolan.org/pub/videolan/x264/binaries/)] fail to load any of my AviSynth scripts (GraphEdit says my filter graph for *.avs is fine, I can play them in Windows Media Player, and it *does* work with more ancient versions of x264 just fine!). The error I get is simply like that:
lavf [error]: could not open input file
x264 [error]: could not open input file `input.avs' via any method!
So I thought if libav can't read it, I'd just build a new libav 11.4 myself, plus x264, because I am using x264's commandline tool directly. So the "linking chain" is like x264 ==linked against==> libav ==linked against==> AviSynth. I tried that on CygWin.
I have trouble linking libav 11.4 against AviSynth 2.6 however (configure option "--enable-avisynth"). At first I used the avisynth_c.h header that comes with AviSynth itself. And these errors came up while building libav using GCC 4.3.4 on a 32-Bit CygWin (avisynth_c.h is being included just fine according to config.log):
libavformat/avisynth.c:48:35: warning: avxsynth/avxsynth_c.h: No such file or directory
libavformat/avisynth.c:63: error: expected specifier-qualifier-list before 'avs_bit_blt_func'
libavformat/avisynth.c:81: error: expected specifier-qualifier-list before 'AVS_ScriptEnvironment'
libavformat/avisynth.c:100: error: 'AVS_PLANAR_Y' undeclared here (not in a function)
libavformat/avisynth.c:101: error: 'AVS_PLANAR_U' undeclared here (not in a function)
libavformat/avisynth.c:102: error: 'AVS_PLANAR_V' undeclared here (not in a function)
libavformat/avisynth.c: In function 'avisynth_load_library':
libavformat/avisynth.c:126: error: 'AviSynthLibrary' has no member named 'avs_bit_blt'
libavformat/avisynth.c:126: error: 'AviSynthLibrary' has no member named 'avs_bit_blt'
libavformat/avisynth.c:127: error: 'AviSynthLibrary' has no member named 'avs_clip_get_error'
libavformat/avisynth.c:127: error: 'AviSynthLibrary' has no member named 'avs_clip_get_error'
libavformat/avisynth.c:128: error: 'AviSynthLibrary' has no member named 'avs_create_script_environment'
libavformat/avisynth.c:128: error: 'AviSynthLibrary' has no member named 'avs_create_script_environment'
libavformat/avisynth.c:129: error: 'AviSynthLibrary' has no member named 'avs_delete_script_environment'
libavformat/avisynth.c:129: error: 'AviSynthLibrary' has no member named 'avs_delete_script_environment'
libavformat/avisynth.c:130: error: 'AviSynthLibrary' has no member named 'avs_get_audio'
libavformat/avisynth.c:130: error: 'AviSynthLibrary' has no member named 'avs_get_audio'
The errors go on and on, there's many more of the similar kind.
So then I read libavformat/avisynth.c, and there is a comment at the beginning of the source code telling me that I need to get the avisynth_c.h that comes with x264 itself, instead of the one from AviSynth 2.6. So indeed, the latest x264 does have that header included, so I linked against that instead. But the same errors happened again.
Am I doing something very wrong here? How exactly should I compile and link libav-11.4 against AviSynth 2.6 on Windows?
Thanks!