You must make sure that you use the same core version of libx264-xx.dll that Avidemux was compiled for!
Usually the x264 API is unchanged over several revisions, but once it is changed, Avidemux needs to be re-compiled with latest x264.h too!
For example if a Avidemux shipped with libx264-
65.dll, then it will only work with libx264 core version 65...
BTW: You need to apply the alignment fix patch to make libx264-xx.dll work properly, otherwise it will crash when executing some of the SSE functions.
And you need GCC 4.2.x or newer to make the alignment fix work. Also Avisynth input is useless for the x264 DLL.
My build script looks like this:
Code:
git clone git://git.videolan.org/x264.git
echo
echo --------------------------------------------------------------------------
echo
cd x264
patch -p1 < ../avidemux.diff
echo
echo --------------------------------------------------------------------------
echo
./configure --enable-shared --extra-cflags="-march=pentium2"
echo
echo --------------------------------------------------------------------------
echo
make fprofiled VIDS="../sample.avs ../sample2.avs"
echo
echo --------------------------------------------------------------------------
The patch is as follows:
Code:
*** a/encoder/encoder.c Fri Sep 19 23:19:33 2008
--- b/encoder/encoder.c Sat Sep 20 03:38:48 2008
*************** static int x264_slices_write( x264_t *h
*** 1328,1329 ****
--- 1341,1343 ----
****************************************************************************/
+ __attribute__((force_align_arg_pointer))
int x264_encoder_encode( x264_t *h,
Last but not least, latest libx264-65.dll for Avidemux r4494 can be found here:
http://forum.doom9.org/showthread.ph...26#post1218226