Как обеспечить поддержку FLOATING_POINT в android-ndk-r7b-linux при компиляции Speex? - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь скомпилировать Speex для Android, используя Android-NDK, в настоящее время я нацеливаюсь на Android 2.3.3, однако позже мне придется протестировать мое приложение на всех версиях Android больше, чем 1.6. Мой файл Android.mk выглядит так: -

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := libspeex
LOCAL_CFLAGS = -DFLOATING_POINT -DUSE_KISS_FFT -DEXPORT="" -UHAVE_CONFIG_H
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

LOCAL_SRC_FILES := \
./libspeex/bits.c \
./libspeex/buffer.c \
./libspeex/cb_search.c \
./libspeex/exc_10_16_table.c \
./libspeex/exc_10_32_table.c \
./libspeex/exc_20_32_table.c \
./libspeex/exc_5_256_table.c \
./libspeex/exc_5_64_table.c \
./libspeex/exc_8_128_table.c \
./libspeex/fftwrap.c \
./libspeex/filterbank.c \
./libspeex/filters.c \
./libspeex/gain_table.c \
./libspeex/gain_table_lbr.c \
./libspeex/hexc_10_32_table.c \
./libspeex/hexc_table.c \
./libspeex/high_lsp_tables.c \
./libspeex/jitter.c \
./libspeex/kiss_fft.c \
./libspeex/kiss_fftr.c \
./libspeex/lpc.c \
./libspeex/lsp.c \
./libspeex/lsp_tables_nb.c \
./libspeex/ltp.c \
./libspeex/mdf.c \
./libspeex/modes.c \
./libspeex/modes_wb.c \
./libspeex/nb_celp.c \
./libspeex/preprocess.c \
./libspeex/quant_lsp.c \
./libspeex/resample.c \
./libspeex/sb_celp.c \
./libspeex/scal.c \
./libspeex/smallft.c \
./libspeex/speex.c \
./libspeex/speex_callbacks.c \
./libspeex/speex_header.c \
./libspeex/stereo.c \
./libspeex/vbr.c \
./libspeex/vq.c \
./libspeex/window.c \
./ native.c \


include $(BUILD_SHARED_LIBRARY)

Проблема в том, что в какой-то момент моего кода мне требуется конфигурация FLOATING_POINT , однако код работает, только если я изменяю его на FIXED_POINT, в противном случае потоки не получают циклы ЦП так, как должны (один поток съедает большинство циклов ЦП, т.е. программа зависает в плавающей арифметике внутри этого потока) Как я могу заставить FLOATING_POINT работать на меня?

...