Hi,<div><br></div><div>I found that x264 crashes on ARM systems when I try to encode </div><div>the foreman CIF test clip (<a href="http://media.xiph.org/video/derf/y4m/foreman_cif.y4m">http://media.xiph.org/video/derf/y4m/foreman_cif.y4m</a>)</div>
<div>on ARM systems with --preset veryslow or --preset placebo. Both presets cause</div><div>crash on the same instruction. Simpler presets seem to work fine.</div><div><br></div><div>Script to reproduce:</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div>#/bin/bash</div><div>wget <a href="http://media.xiph.org/video/derf/y4m/foreman_cif.y4m">http://media.xiph.org/video/derf/y4m/foreman_cif.y4m</a></div><div>git clone git://<a href="http://git.videolan.org/x264.git">git.videolan.org/x264.git</a></div>
<div>pushd x264</div><div>git checkout c832fe995bf3d41cae1d3d22e10cb2288e8a650a</div><div>./configure --enable-debug</div><div>make</div><div>popd</div><div>x264/x264 --preset veryslow -o foreman.h264 foreman_cif.y4m</div>
<div><br></div></blockquote>GDB and x264 output (register dump is attached):</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>(gdb) run --preset veryslow -o foreman.h264 foreman_cif.y4m</div>
<div>Starting program: /home/marat/x264/x264 --preset veryslow -o foreman.h264 foreman_cif.y4m</div><div>[Thread debugging using libthread_db enabled]</div><div>Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".</div>
<div>y4m [info]: 352x288p 128:117 @ 30000/1001 fps (cfr)</div><div>x264 [info]: using SAR=128/117</div><div>x264 [info]: using cpu capabilities: ARMv6 NEON</div><div>x264 [info]: profile High, level 2.2</div><div>[4.3%] 13/300 frames, 3.09 fps, 541.47 kb/s, eta 0:01:32</div>
<div>Program received signal SIGSEGV, Segmentation fault.</div><div>0x00077694 in x264_pixel_avg2_w8_neon ()</div><div>(gdb) display/i $pc</div><div>1: x/i $pc</div><div>=> 0x77694 <x264_pixel_avg2_w8_neon+16>: vld1.64 {d0}, [r2], r3</div>
</div></blockquote><div><br></div><div><div>The bug is reproducible on Pandaboard, Beagleboard, and Odroid-U2,</div><div>all running different versions of Ubuntu 12.x.x. </div><div>Here I attach version dumps only for Odroid-U2:</div>
<div><br></div></div>gcc -v</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>Using built-in specs.</div><div>COLLECT_GCC=gcc</div><div>COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper</div>
<div>Target: arm-linux-gnueabihf</div><div>Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf</div>
<div>Thread model: posix</div><div>gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)</div></div><div><br></div></blockquote>uname -a</div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>Linux odroid 3.0.60-odroidu2 #21 SMP Mon Jan 28 11:30:39 KST 201 3 armv7l armv7l armv7l GNU/Linux</div>
</blockquote></div><div><br></div><div>Regards,</div><div>Marat</div>