Audio-LibSampleRate
view release on metacpan or search on metacpan
LibSampleRate.xs view on Meta::CPAN
src_simple(data_in, src_ratio, converter_type = 0, channels = 2)
AV* data_in
double src_ratio
int converter_type
int channels
PREINIT:
SRC_DATA data;
AV* data_out;
float *in, *out;
int i, error;
PPCODE:
data.input_frames = (av_len(data_in) + 1) / channels;
data.output_frames = data.input_frames * src_ratio + 10;
Newx(in, data.input_frames * channels, float);
Newx(out, data.output_frames * channels, float);
for(i = 0 ; i <= av_len(data_in) ; i++)
if(av_exists(data_in, i))
in[i] = SvNV(*av_fetch(data_in, i, 0));
data.data_in = in;
data.data_out = out;
data.src_ratio = src_ratio;
LibSampleRate.xs view on Meta::CPAN
process(self, data_in, src_ratio, end_of_input = 0)
SV* self
AV* data_in
double src_ratio
int end_of_input
PREINIT:
SRC_DATA data;
AV* data_out;
float *in, *out;
int i, error;
PPCODE:
data.input_frames = av_len(data_in) + 1;
data.output_frames = data.input_frames * src_ratio + 10;
Newx(in, data.input_frames, float);
Newx(out, data.output_frames, float);
for(i = 0 ; i <= av_len(data_in) ; i++)
if(av_exists(data_in, i))
in[i] = SvNV(*av_fetch(data_in, i, 0));
data.data_in = in;
data.data_out = out;
data.src_ratio = src_ratio;
( run in 0.477 second using v1.01-cache-2.11-cpan-71847e10f99 )