X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=resample_filter.c;h=ebf85a4a053c9cc193e377ef837469277bc75bc6;hb=27c08870ba172782f6406045007b6ff32a4f7329;hp=72a1864eeafb69982cc1f0e49a1013eb81872341;hpb=bd28ec9a64884d70917c4fdea1a3a70c91758f83;p=paraslash.git diff --git a/resample_filter.c b/resample_filter.c index 72a1864e..ebf85a4a 100644 --- a/resample_filter.c +++ b/resample_filter.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2012 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2012 Andre Noll , see file COPYING. */ /** \file resample_filter.c A sample rate converter based on libsamplerate. */ @@ -55,7 +51,7 @@ static void resample_close(struct filter_node *fn) static void resample_open(struct filter_node *fn) { - struct resample_context *ctx = para_calloc(sizeof(*ctx)); + struct resample_context *ctx = zalloc(sizeof(*ctx)); struct btr_node *btrn = fn->btrn; struct wav_params wp; @@ -159,6 +155,7 @@ static int resample_frames(int16_t *in, size_t num_frames, bool have_more, size_t *result_frames) { int ret, num_samples, out_samples; + float *in_float; int16_t *out; SRC_DATA data; @@ -170,18 +167,19 @@ static int resample_frames(int16_t *in, size_t num_frames, bool have_more, data.output_frames = num_frames * ctx->ratio + 1; out_samples = data.output_frames * ctx->channels; - data.data_in = para_malloc(num_samples * sizeof(float)); - src_short_to_float_array(in, data.data_in, num_samples); - data.data_out = para_malloc(out_samples * sizeof(float)); + in_float = arr_alloc(num_samples, sizeof(float)); + src_short_to_float_array(in, in_float, num_samples); + data.data_in = in_float; + data.data_out = arr_alloc(out_samples, sizeof(float)); ret = src_process(ctx->src_state, &data); - free(data.data_in); + free(in_float); if (ret != 0) { PARA_ERROR_LOG("%s\n", src_strerror(ret)); free(data.data_out); return -E_LIBSAMPLERATE; } out_samples = data.output_frames_gen * ctx->channels; - out = para_malloc(out_samples * sizeof(short)); + out = arr_alloc(out_samples, sizeof(short)); src_float_to_short_array(data.data_out, out, out_samples); free(data.data_out); *result = out;