Content-type: text/html
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLimit_S16_S16(mlib_s16 *dst, const mlib_s16 *src, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_S16S_S16S(mlib_s16 *dst, const mlib_s16 *src, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_S16(mlib_s16 *srcdst, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_S16S(mlib_s16 *srcdst, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_F32_F32(mlib_f32 *dst, const mlib_f32 *src, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_F32S_F32S(mlib_f32 *dst, const mlib_f32 *src, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_F32(mlib_f32 *srcdst, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n);
mlib_status mlib_SignalLimit_F32S(mlib_f32 *srcdst, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n);
Each of these functions performs hard limiting.
For monaural signals, the following equation is used:
dst[i] = low[0] if src[i] < low[0] dst[i] = src[i] if low[0] ≤ src[i] < high[0] dst[i] = high[0] if src[i] ≥ high[0]
where i = 0, 1, ..., (n - 1).
For stereo signals, the following equation is used:
dst[2*i] = low[0] if src[2*i] < low[0] dst[2*i] = src[2*i] if low[0] ≤ src[2*i] < high[0] dst[2*i] = high[0] if src[2*i] ≥ high[0] dst[2*i+1] = low[1] if src[2*i+1] < low[1] dst[2*i+1] = src[2*i+1] if low[1] ≤ src[2*i+1] < high[1] dst[2*i+1] = high[1] if src[2*i+1] ≥ high[1]
Each of the functions takes some of the following arguments:
dst
src
srcdst
low
high
n
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
attributes(5)