87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
|
|
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 the 2-clause BSD license (initially it was
|
|
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.
|
|
|
|
|