D-Modem/pjproject-2.11.1/third_party/build/samplerate/README.txt
2021-10-29 14:41:03 -04:00

85 lines
2.7 KiB
Text

HOW TO ACTIVATE LIBSAMPLERATE
(a.k.a SRC/Secret Rabbit Code)
AS PJMEDIA'S SAMPLE RATE CONVERSION BACKEND
by
Benny Prijono
PJSIP
Background
----------
Secret Rabbit Code (aka libsamplerate) is a sample rate conversion
library, available from http://www.mega-nerd.com/SRC/index.html.
It is licensed under dual license, GPL and proprietary.
Supported Platforms
-------------------
libsamplerate is available for Win32 with Visual Studio and the
Makefile based targets (such as Linux, MacOS X, *nix, etc.).
It's not supported for WinCE/Windows Mobile and Symbian since it is
a floating point based implementation.
Installation
------------
- Download libsamplerate from http://www.mega-nerd.com/SRC/index.html
- Untar libsamplerate-0.1.2.tar.gz into third_party directory
cd third_party
tar xzf libsamplerate-0.1.2.tar.gz
- Rename libsamplerate-0.1.2 directory name to libsamplerate
On Windows:
ren libsamplerate-0.1.2 libsamplerate
On Linux/Unix/MacOS X:
mv libsamplerate-0.1.2 libsamplerate
Visual Studio Build
-------------------
For Visual Studio projects, only static linkage is supported
by PJMEDIA build system. If dynamic linking is desired, edit
pjmedia/src/pjmedia/resample_libresample.c to prevent it from
linking with the static library, and configure your project
to link with libsamplerate DLL library.
To build libresample static library with Visual Studio:
- Open third_party/build/samplerate/libsamplerate_static.dsp
- Build the project for both Debug and Release build
libresample dynamic library can be produced by following the
instructions in libresample source directory.
Makefile build
--------------
- Build and install libsamplerate (configure && make && make install).
Please follow the instructions in libsamplerate documentation.
- Re-run PJSIP's "configure" script with this option:
./configure --enable-libsamplerate
this will detect the presence of libsamplerate library and add it
to the input library list.
Enabling libsamplerate for PJMEDIA's resample
---------------------------------------------
For both Visual Studio and Makefile based build system, add this in
config_site.h:
#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBSAMPLERATE
Limitations
-----------
Sample rate 22050 Hz is only supported with 20ms ptime, and sample rate 11025 Hz is only supported with 40ms ptime. This is the limitation of PJMEDIA rather than libsamplerate.