diff options
author | Robin Gareus <robin@gareus.org> | 2014-01-29 21:45:13 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-01-29 21:45:13 +0100 |
commit | 2d8352123a656bb0478008876340352c158ceacf (patch) | |
tree | 91e88bb5955319ad3855ae12e43e357e4c31d8be /libs/panners | |
parent | eadafdd6de3d773df91e23660f4b47f6fe660ecc (diff) |
fix vbap-speaker calculations to work with alloca()
Diffstat (limited to 'libs/panners')
-rw-r--r-- | libs/panners/vbap/vbap_speakers.cc | 22 |
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]; |