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 )