INNER CODE UNIT · C
cvtval_f
1oom-fork/1oom · src/fmt_sfx.c:79
float cvtval_f = src_data.data_out[i] * libsamplerate_scale * INT16_MAX;
int32_t cvtval_i = cvtval_f + (cvtval_f < 0 ? -0.5 : 0.5);
/* Asymmetrical sound worries me, so we won't use -32768. */
if (cvtval_i < -INT16_MAX) {
cvtval_i = -INT16_MAX;
++clipped;
} else if (cvtval_i > INT16_MAX) {
cvtval_i = INT16_MAX;
++clipped;
}
s_out.data[i] = cvtval_i;
}
if (clipped) {
log_warning("libsamplerate clipped %i samples with scale %i\n", clipped, opt_libsamplerate_scale);
}
lib_free(data_in);
lib_free(src_data.data_out);