DSP library derived from speex
  • C 79.7%
  • Assembly 14.6%
  • Meson 1.6%
  • M4 1.3%
  • CMake 0.9%
  • Other 1.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tristan Matthews 721cd49c81
checkasm: add copyright and license headers
The checkasm sources had none. Use the same BSD text as the rest of
the new code, with copyright lines for each file's authors from the git
history (including Co-authored-by credit), in order of first commit.
2026-10-05 13:18:16 -04:00
cmake cmake: add RVV to build 2026-07-13 11:29:00 -04:00
doc build: drop the exec bit and add missing trailing newlines 2026-09-27 20:51:37 -04:00
html doc: remove codec-specific documentation 2014-09-26 15:08:26 -04:00
include build: drop the exec bit and add missing trailing newlines 2026-09-27 20:51:37 -04:00
libspeexdsp checkasm: trim wrapper comments 2026-10-05 13:18:15 -04:00
macosx Clean up other platforms; remove codec files 2010-01-07 17:56:39 +01:00
regression-fixes Fixed a resampler regression cause by signed/unsigned errors. Also started 2007-08-11 13:18:56 +00:00
subprojects subprojects: note that the checkasm patches are merged upstream 2026-09-27 20:51:13 -04:00
symbian Clean up embedded targets 2010-01-07 17:18:55 +01:00
tests checkasm: add copyright and license headers 2026-10-05 13:18:16 -04:00
ti remove trailing whitespace 2015-04-01 12:37:48 -04:00
tmv remove trailing whitespace 2015-04-01 12:37:48 -04:00
win32 libspeexdsp.def: add .dll extension to def file 2022-07-18 12:06:36 -04:00
.gitignore Update .gitignore 2026-06-05 09:40:29 -04:00
.gitlab-ci.yml README: build with --buildtype=release in the meson examples 2026-09-27 20:52:18 -04:00
.travis.yml Create .travis.yml 2017-01-22 14:16:02 -05:00
acinclude.m4 acinclude.m4: fix typo 2023-02-28 16:25:39 -05:00
AUTHORS AUTHORS: use consistent punctuation 2025-06-16 15:21:26 -04:00
autogen.sh Remove spurious ACLOCAL_FLAGS variable from autogen.sh. 2015-09-26 11:17:54 +09:30
ChangeLog declare n 2005-09-07 19:16:00 +00:00
CMakeLists.txt build: fix typos and the stale RVV probe comments 2026-09-27 20:51:37 -04:00
configure.ac build: fix typos and the stale RVV probe comments 2026-09-27 20:51:37 -04:00
CONTRIBUTING.md CONTRIBUTING: fix the GitHub mirror link 2026-09-27 20:52:18 -04:00
COPYING Remove trailing white space from COPYING 2022-05-09 09:34:51 -04:00
Doxyfile Updated TODO, Doxygen, project file 2007-03-27 09:10:37 +00:00
INSTALL correct INSTALL file 2014-12-07 13:18:57 -05:00
Makefile.am build: ship the meson, CMake and checkasm files in the tarball 2026-09-24 11:51:01 -04:00
meson.build meson: drop the commented-out TI C55x option 2026-09-27 20:51:53 -04:00
meson_options.txt meson: drop the commented-out TI C55x option 2026-09-27 20:51:53 -04:00
NEWS Checking in license stuff 2002-02-19 02:43:23 +00:00
README README: build with --buildtype=release in the meson examples 2026-09-27 20:52:18 -04:00
README.blackfin Updated README.blackfin for speexdsp 2014-12-06 19:15:40 -05:00
README.Trimedia doc: fix typos 2025-06-16 15:22:37 -04:00
README.win32 update README.win32 for speexdsp 2014-12-07 11:39:26 -05:00
regressions Fixed a resampler regression cause by signed/unsigned errors. Also started 2007-08-11 13:18:56 +00:00
SpeexDSP.kdevelop Split libspeex and libspeexdsp 2009-12-22 20:02:03 +01:00
speexdsp.pc.in Don't overlink with libm 2013-12-08 03:08:35 +10:30
SpeexDSP.spec.in Split libspeex and libspeexdsp 2009-12-22 20:02:03 +01:00
TODO remove codec-only references from TODO 2014-12-07 11:39:26 -05:00

SpeexDSP is a patent-free, Open Source/Free Software DSP library derived
from the Speex codec.  It provides the following features:

  - Resampler
  - Echo canceller
  - Noise suppressor / preprocessor
  - Automatic gain control (AGC)
  - Voice activity detection (VAD)
  - Jitter buffer


== Building with Autotools ==

See the INSTALL file for generic autoconf/automake instructions.

    ./autogen.sh
    ./configure
    make
    make install

Selected ./configure options:

    --enable-fixed-point      Use fixed-point arithmetic (default: float)
    --disable-float-api       Disable the floating-point API
    --disable-examples        Do not build example programs


== Building with CMake ==

A CMake build is available as an alternative to the autotools build.
A build directory separate from the source tree is recommended.

    cmake -S . -B build
    cmake --build build
    cmake --install build

CMake options (pass with -D<OPTION>=<VALUE>):

    BUILD_SHARED_LIBS=ON|OFF    Build shared instead of static library
                                (default: OFF)
    USE_FIXED_POINT=ON|OFF      Use fixed-point arithmetic
                                (default: OFF, i.e. floating-point)
    CMAKE_BUILD_TYPE=...        Release, Debug, RelWithDebInfo, etc.
    CMAKE_INSTALL_PREFIX=...    Installation prefix (default: /usr/local)

Examples:

    # Shared library, release build
    cmake -S . -B build -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
    cmake --build build
    cmake --install build

    # Fixed-point, install to /usr
    cmake -S . -B build -DUSE_FIXED_POINT=ON -DCMAKE_INSTALL_PREFIX=/usr
    cmake --build build
    cmake --install build

== Using speexdsp in a CMake project ==

After installation the library can be found via find_package:

    find_package(speexdsp REQUIRED)
    target_link_libraries(my_target PRIVATE speexdsp::speexdsp)

pkg-config is also supported:

    pkg-config --cflags --libs speexdsp

== Building with Meson ==

Requires Meson (0.63 or higher), and Ninja.

    rm -rf build
    meson setup build --buildtype=release   # see meson_options.txt for options
    ninja -C build

== Running checkasm (SIMD tests/benchmarks) ==

    rm -rf build
    meson setup build --buildtype=release
    ninja -C build
    ./build/tests/checkasm --bench --duration=30000 --repeat=3

    # or just check for correctness
    ./build/tests/checkasm              # or:   meson test -C build

    # or benchmark just the top-level resampler API:
    ./build/tests/checkasm --bench --test=resample_process

== Development ==

See CONTRIBUTING.md