Maybe this info will help someone in the future. It seems we have to be
more careful with ffmpeg's ./configure with regard to CPU capability
settings than we did in the past.

I had a strange problem with ffmpeg on an older K6-2 system after I
upgraded it to a recent 2010-07-11 SVN snapshot of ffmpeg.

The symptom was an "Illegal instruction" error whenever -s or -target
was used. Using gdb, I was able to learn that ffmpeg's libswscale was
calling the cpu instruction movntq which does not exist on the K6-2
(but does on the AMD Athlon and later).

It turns out that the default ./configure resulted in:

runtime cpu detection     no
yasm                      yes
MMX enabled               yes
MMX2 enabled              yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
CMOV enabled              no
CMOV is fast              no
EBX available             yes
EBP available             yes

but the K6-2 does not have MMX2, 3DNow! extended, SSE or SSSE3. The
configure script only checks what the system can *compile*, not what
the cpu can run. Furthermore, the run time cpu autodetect option (which
increases the binary size a tad) is disabled by default. So, for older
CPU's, ffmpeg will require additional options (that does not seem to
have been needed in the past) as it will not run on them by default.

In the case of the K6-2, these configure options are needed:

--disable-amd3dnowext --disable-mmx2 --disable-sse --disable-ssse3

or perhaps instead:

--enable-runtime-cpudetect

but I did not test the latter approach.

The ffmpeg developers may not consider this problem to be a bug, at least
based on my reading of a past attempt to report something like this:

https://roundup.ffmpeg.org/issue893

--
As a side note, there was also another issue in that there seems to be
a circular dependency with libx264 and ffmpeg when invoking ffmpeg's:

--enable-libx264 

in that libx264 wants a recent version of ffmpeg's libraries before it
will install. So, I installed ffmpeg without --enable-libx264, then
libx264, then ffmpeg with --enable-libx264 to get around the catch 22.


  Cheers,
  Mike Shell

-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to