When a52dec is emerged with the djbfft USE flag then it is able to do optimised FFTs using the djbfft library. This is activated by setting the MM_ACCEL_DJBFFT flag when calling a52_init. The problem is that the internal version of a52dec in xine-lib is an older version which used the Solaris-specific mlib for FFT acceleration. MM_ACCEL_DJBFFT and MM_ACCEL_MLIB are defined to be the same value (0x00000001). The attached patch adds an --enable-djbfft flag to configure.ac which is only checked when xine-lib wants to use an external version of a52dec. If set, then MM_ACCEL_MLIB is added to the flags which is equivalent to passing MM_ACCEL_DJBFFT to an external a52dec. The attached ebuild adds support for the djbfft USE flag to xine-lib. Reproducible: Always Steps to Reproduce: 1. Add djbfft and a52 to USE flags 2. emerge a52dec with djbfft library 3. emerge xine-ui with external a52 library Actual Results: xine-lib displays "No accelerated IMDCT transform found" when playing back DVDs with A/52 audio. Expected Results: xine-lib displays "Using djbfft for IMDCT transform" when playing back DVDs with A/52 audio.
Created attachment 120383 [details, diff] Add --enable-djbfft to xine-lib configure script
Created attachment 120384 [details] Add djbfft USE flag to xine-lib
This needs to go upstream, have you reported it?
Upstream rejects this patch, please find a different solution.
Upstream doesn't want the fix so I see 3 options: 1. Apply this patch as gentoo specific 2. Remove support for external liba52 from the xine-lib ebuild 3. Add a patch to the a52dec ebuild to always enable djbfft support if it was compiled in
Option 1 and 2 are completely unacceptable. But I've fixed this properly in Mercurial code of xine-lib, to be released in 1.1.9 (which should be soon enough, as it's due before KDE4 gets released).
Marking this as UPSTREAM as the bug is resolved upstream.