summaryrefslogtreecommitdiff
path: root/libs/panners
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-01-29 21:45:13 +0100
committerRobin Gareus <robin@gareus.org>2014-01-29 21:45:13 +0100
commit2d8352123a656bb0478008876340352c158ceacf (patch)
tree91e88bb5955319ad3855ae12e43e357e4c31d8be /libs/panners
parenteadafdd6de3d773df91e23660f4b47f6fe660ecc (diff)
fix vbap-speaker calculations to work with alloca()
Diffstat (limited to 'libs/panners')
-rw-r--r--libs/panners/vbap/vbap_speakers.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc
index af690af32c..79f5b230f7 100644
--- a/libs/panners/vbap/vbap_speakers.cc
+++ b/libs/panners/vbap/vbap_speakers.cc
@@ -127,6 +127,10 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
float distance;
struct ls_triplet_chain *trip_ptr, *prev, *tmp_ptr;
+ for (i = 0; i < n_speakers * n_speakers; i++) {
+ connections[i] = 0;
+ }
+
if (n_speakers == 0) {
return;
}
@@ -573,7 +577,7 @@ VBAPSpeakers::choose_speaker_pairs (){
+_speakers[sorted_speakers[0]].angles().azi) <= AZIMUTH_DELTA_THRESHOLD_DEGREES) {
if (calc_2D_inv_tmatrix(_speakers[sorted_speakers[n_speakers-1]].angles().azi,
_speakers[sorted_speakers[0]].angles().azi,
- &inverse_matrix[(4*n_speakers)-1]) != 0) {
+ &inverse_matrix[4*(n_speakers-1)]) != 0) {
exists[n_speakers-1] = true;
expected_pairs++;
}
@@ -591,10 +595,10 @@ VBAPSpeakers::choose_speaker_pairs (){
for (speaker = 0; speaker < n_speakers - 1; speaker++) {
if (exists[speaker]) {
- _matrices[pair][0] = inverse_matrix[(speaker*n_speakers)+0];
- _matrices[pair][1] = inverse_matrix[(speaker*n_speakers)+1];
- _matrices[pair][2] = inverse_matrix[(speaker*n_speakers)+2];
- _matrices[pair][3] = inverse_matrix[(speaker*n_speakers)+3];
+ _matrices[pair][0] = inverse_matrix[(speaker*4)+0];
+ _matrices[pair][1] = inverse_matrix[(speaker*4)+1];
+ _matrices[pair][2] = inverse_matrix[(speaker*4)+2];
+ _matrices[pair][3] = inverse_matrix[(speaker*4)+3];
_speaker_tuples[pair][0] = sorted_speakers[speaker];
_speaker_tuples[pair][1] = sorted_speakers[speaker+1];
@@ -604,10 +608,10 @@ VBAPSpeakers::choose_speaker_pairs (){
}
if (exists[n_speakers-1]) {
- _matrices[pair][0] = inverse_matrix[(speaker*n_speakers)+0];
- _matrices[pair][1] = inverse_matrix[(speaker*n_speakers)+1];
- _matrices[pair][2] = inverse_matrix[(speaker*n_speakers)+2];
- _matrices[pair][3] = inverse_matrix[(speaker*n_speakers)+3];
+ _matrices[pair][0] = inverse_matrix[(speaker*4)+0];
+ _matrices[pair][1] = inverse_matrix[(speaker*4)+1];
+ _matrices[pair][2] = inverse_matrix[(speaker*4)+2];
+ _matrices[pair][3] = inverse_matrix[(speaker*4)+3];
_speaker_tuples[pair][0] = sorted_speakers[n_speakers-1];
_speaker_tuples[pair][1] = sorted_speakers[0];