[FFmpeg-devel] [PATCH] swscale: fix build with --enable-runtime-cpudetect --disable-mmx/mmx2/amd3dnow
Anssi Hannula
anssi.hannula
Wed Feb 2 19:27:35 CET 2011
On 02.02.2011 20:22, M?ns Rullg?rd wrote:
> Anssi Hannula <anssi.hannula at iki.fi> writes:
>
>> Commit 0fc29f2708a "swscale: simplify selection of optimizations to
>> compile." (25 Aug 2010) changed the behaviour so that with
>> --enable-runtime-cpudetect --disable-mmx/mmx2/amd3dnow the instruction
>> sets are actually disabled.
>>
>> However, ff_getSwsFunc() still calls the respective initialization
>> functions which no longer exist, causing a build failure.
>>
>> Fix that by putting those calls under #if as well.
>> ---
>> libswscale/swscale.c | 15 +++++++++++----
>> 1 files changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/libswscale/swscale.c b/libswscale/swscale.c
>> index 375171f..8d7bb73 100644
>> --- a/libswscale/swscale.c
>> +++ b/libswscale/swscale.c
>> @@ -1262,19 +1262,26 @@ SwsFunc ff_getSwsFunc(SwsContext *c)
>>
>> #if ARCH_X86
>> // ordered per speed fastest first
>> +#if COMPILE_MMX2
>> if (flags & SWS_CPU_CAPS_MMX2) {
>> sws_init_swScale_MMX2(c);
>> return swScale_MMX2;
>> - } else if (flags & SWS_CPU_CAPS_3DNOW) {
>> + }
>> +#endif
>> +#if COMPILE_3DNOW
>> + if (flags & SWS_CPU_CAPS_3DNOW) {
>> sws_init_swScale_3DNow(c);
>> return swScale_3DNow;
>> - } else if (flags & SWS_CPU_CAPS_MMX) {
>> + }
>> +#endif
>> +#if COMPILE_MMX
>> + if (flags & SWS_CPU_CAPS_MMX) {
>> sws_init_swScale_MMX(c);
>> return swScale_MMX;
>> - } else {
>> + }
>> +#endif
>
> I somehow suspect these should be HAVE_FOO instead, but this file is
> an ifdef jungle and I could be wrong.
The COMPILE_FOO are defined to HAVE_FOO when runtime cpudetection is in
use. However, as the actual compilation of those functions depends
directly on COMPILE_FOO (and only indirectly on HAVE_FOO), I had thought
it is better to make the calls depend on the same #define.
--
Anssi Hannula
More information about the ffmpeg-devel
mailing list