summaryrefslogtreecommitdiffstats
path: root/audio/libconvolve/files
diff options
context:
space:
mode:
authormiwi <miwi@FreeBSD.org>2007-04-09 17:46:35 +0000
committermiwi <miwi@FreeBSD.org>2007-04-09 17:46:35 +0000
commitd52ce19b7e157bc0cb356c4892efe7ea838d4769 (patch)
treee4760c28b0a71313f7ee8c683e2ba8f775105567 /audio/libconvolve/files
parent21961d7fe145c4bdeb76149eb91e1ce392ca8139 (diff)
downloadFreeBSD-ports-d52ce19b7e157bc0cb356c4892efe7ea838d4769.zip
FreeBSD-ports-d52ce19b7e157bc0cb356c4892efe7ea838d4769.tar.gz
Simple C library for partitioned convolution.
WWW: http://tapas.affenbande.org/wordpress/?page_id=9 PR: ports/111128 Submitted by: trasz <trasz at pin.if.uz.zgora.pl>
Diffstat (limited to 'audio/libconvolve/files')
-rw-r--r--audio/libconvolve/files/patch-Makefile32
-rw-r--r--audio/libconvolve/files/patch-convolution_init.c74
-rw-r--r--audio/libconvolve/files/patch-convolution_process.c11
3 files changed, 117 insertions, 0 deletions
diff --git a/audio/libconvolve/files/patch-Makefile b/audio/libconvolve/files/patch-Makefile
new file mode 100644
index 0000000..1ab141e
--- /dev/null
+++ b/audio/libconvolve/files/patch-Makefile
@@ -0,0 +1,32 @@
+--- Makefile.orig Mon Apr 2 09:20:41 2007
++++ Makefile Mon Apr 2 09:20:55 2007
+@@ -1,19 +1,18 @@
+ PREFIX=/usr/local
+
+-COMPILE_FLAGS = -fPIC `pkg-config fftw3f samplerate sndfile --cflags`
++COMPILE_FLAGS = $(CFLAGS) -fPIC `pkg-config fftw3f samplerate sndfile --cflags`
+ #COMPILE_FLAGS += -g
+-COMPILE_FLAGS += -O3 -funroll-loops -funroll-all-loops
+
+ LINK_FLAGS = `pkg-config fftw3f samplerate sndfile --libs`
+
+ # uncomment the following line if libDSP is not available for
+ # your platform (power pc etc.)...
+
+-# COMPILE_FLAGS += -DC_CMUL
++COMPILE_FLAGS += -DC_CMUL
+
+ # ...and comment this one out:
+
+-LINK_FLAGS += -L/usr/local/lib -ldsp -lstdc++
++#LINK_FLAGS += -L/usr/local/lib -ldsp -lstdc++
+
+
+ ST_TARGET = libconvolve.a
+@@ -53,5 +52,5 @@
+ cp $(TARGET) $(PREFIX)/lib/
+ cp $(ST_TARGET) $(PREFIX)/lib/
+ cp convolve.h $(PREFIX)/include/
+- ldconfig -n $(PREFIX)/lib
++ ln -s $(PREFIX)/lib/$(TARGET) $(PREFIX)/lib/$(SONAME) || true
+ ln -s $(PREFIX)/lib/$(SONAME) $(PREFIX)/lib/$(SMALLNAME) || true
diff --git a/audio/libconvolve/files/patch-convolution_init.c b/audio/libconvolve/files/patch-convolution_init.c
new file mode 100644
index 0000000..6c5bebc
--- /dev/null
+++ b/audio/libconvolve/files/patch-convolution_init.c
@@ -0,0 +1,74 @@
+--- convolution_init.c.orig Mon Nov 28 00:24:57 2005
++++ convolution_init.c Mon Apr 2 09:26:43 2007
+@@ -17,8 +17,19 @@
+ */
+
+ #include "convolve.h"
+-#include <malloc.h>
++#include <stdlib.h>
+ #include <math.h>
++#include <errno.h>
++
++int my_posix_memalign(void **memptr, size_t alignment, size_t size)
++{
++ *memptr = malloc(size);
++
++ if (*memptr != NULL)
++ return 0;
++ else
++ return errno;
++}
+
+ int convolution_init (convolution_t *conv,
+ int number_of_responses,
+@@ -47,12 +58,12 @@
+ // allocate FFT buffers
+ // as r2c stores only N/2+1 results, we don't need the padded size for this
+ // conv->fft_complex = (fftwf_complex*)malloc (sizeof(fftwf_complex) * (conv->chunk_length + 1));
+- posix_memalign(&conv->fft_complex, 16, sizeof(fftwf_complex) * (conv->chunk_length + 1));
++ my_posix_memalign(&conv->fft_complex, 16, sizeof(fftwf_complex) * (conv->chunk_length + 1));
+
+
+ // this one still needs to be 2 * chunk_length as we zero pad it
+ // conv->fft_real = (float*)malloc (sizeof(float) * 2 * conv->chunk_length);
+- posix_memalign(&conv->fft_real, 16, sizeof(float) * 2 * conv->chunk_length);
++ my_posix_memalign(&conv->fft_real, 16, sizeof(float) * 2 * conv->chunk_length);
+
+ // create fftw plans
+ conv->fft_plan_forward = fftwf_plan_dft_r2c_1d (2 * conv->chunk_length,
+@@ -100,7 +111,7 @@
+ * (conv->chunk_length + 1)
+ * conv->fft_responses[index]->number_of_chunks);
+ */
+- posix_memalign(&conv->fft_responses[index]->channel_data[index2],
++ my_posix_memalign(&conv->fft_responses[index]->channel_data[index2],
+ 16,
+ sizeof(fftwf_complex)
+ * (conv->chunk_length + 1)
+@@ -169,7 +180,7 @@
+
+ // need to divide (integer divide) the index by number_of_responses to get
+ // a valid index into the list of responses.
+- posix_memalign(&conv->input_chunk_ringbuffers[index], 16,
++ my_posix_memalign(&conv->input_chunk_ringbuffers[index], 16,
+ sizeof(fftwf_complex) * conv->fft_responses[index/conv->number_of_response_channels]->number_of_chunks
+ * (conv->chunk_length + 1));
+
+@@ -189,7 +200,7 @@
+ = (fftwf_complex*)malloc (sizeof(fftwf_complex) * conv->fft_responses[index]->number_of_chunks
+ * (conv->chunk_length + 1));
+ */
+- posix_memalign(&conv->input_chunk_ringbuffers[index], 16,
++ my_posix_memalign(&conv->input_chunk_ringbuffers[index], 16,
+ sizeof(fftwf_complex) * conv->fft_responses[index]->number_of_chunks
+ * (conv->chunk_length + 1));
+
+@@ -222,7 +233,7 @@
+ for (index = 0; index < conv->number_of_response_channels; ++index) {
+
+ // conv->overlap_buffers[index] = (float*)malloc (sizeof(float) * conv->chunk_length);
+- posix_memalign(&conv->overlap_buffers[index], 16, sizeof(float) * conv->chunk_length);
++ my_posix_memalign(&conv->overlap_buffers[index], 16, sizeof(float) * conv->chunk_length);
+
+ // zero out
+ for (index2 = 0; index2 < conv->chunk_length; ++index2) {
diff --git a/audio/libconvolve/files/patch-convolution_process.c b/audio/libconvolve/files/patch-convolution_process.c
new file mode 100644
index 0000000..a5582fb
--- /dev/null
+++ b/audio/libconvolve/files/patch-convolution_process.c
@@ -0,0 +1,11 @@
+--- convolution_process.c.orig Mon Apr 2 09:22:07 2007
++++ convolution_process.c Mon Apr 2 09:22:15 2007
+@@ -23,7 +23,7 @@
+ #include <dsp/dspop.h>
+ #endif
+
+-#include <malloc.h>
++#include <stdlib.h>
+ #include <math.h>
+
+
OpenPOWER on IntegriCloud