use vectors for sample buffers rather than raw ptr arrays
This commit is contained in:
@@ -103,13 +103,13 @@ void PanNode::ProcessSamples(NodeValueDatabase &values, const SampleBufferPtr in
|
||||
float pan_val = values[kPanningInput].Get(NodeValue::kFloat).toFloat();
|
||||
|
||||
for (int i=0;i<input->audio_params().channel_count();i++) {
|
||||
output->data()[i][index] = input->data()[i][index];
|
||||
output->data(i)[index] = input->data(i)[index];
|
||||
}
|
||||
|
||||
if (pan_val > 0) {
|
||||
output->data()[0][index] *= (1.0F - pan_val);
|
||||
output->data(0)[index] *= (1.0F - pan_val);
|
||||
} else if (pan_val < 0) {
|
||||
output->data()[1][index] *= (1.0F - qAbs(pan_val));
|
||||
output->data(1)[index] *= (1.0F - qAbs(pan_val));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,11 +73,11 @@ void CrossDissolveTransition::SampleJobEvent(SampleBufferPtr from_samples, Sampl
|
||||
double progress = GetTotalProgress(this_sample_time);
|
||||
|
||||
for (int j=0; j<out_samples->audio_params().channel_count(); j++) {
|
||||
out_samples->data()[j][i] = 0;
|
||||
out_samples->data(j)[i] = 0;
|
||||
|
||||
if (from_samples) {
|
||||
if (i < from_samples->sample_count()) {
|
||||
out_samples->data()[j][i] += from_samples->data()[j][i] * TransformCurve(1.0 - progress);
|
||||
out_samples->data(j)[i] += from_samples->data(j)[i] * TransformCurve(1.0 - progress);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ void CrossDissolveTransition::SampleJobEvent(SampleBufferPtr from_samples, Sampl
|
||||
int in_index = i - (out_samples->sample_count() - to_samples->sample_count());
|
||||
|
||||
if (in_index >= 0) {
|
||||
out_samples->data()[j][i] += to_samples->data()[j][in_index] * TransformCurve(progress);
|
||||
out_samples->data(j)[i] += to_samples->data(j)[in_index] * TransformCurve(progress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ NodeValueTable MathNodeBase::ValueInternal(NodeValueDatabase &value, Operation o
|
||||
for (int i=0;i<mixed_samples->audio_params().channel_count();i++) {
|
||||
// Mix samples that are in both buffers
|
||||
for (int j=0;j<min_samples;j++) {
|
||||
mixed_samples->data()[i][j] = PerformAll<float, float>(operation, samples_a->data()[i][j], samples_b->data()[i][j]);
|
||||
mixed_samples->data(i)[j] = PerformAll<float, float>(operation, samples_a->data(i)[j], samples_b->data(i)[j]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,8 +271,8 @@ NodeValueTable MathNodeBase::ValueInternal(NodeValueDatabase &value, Operation o
|
||||
SampleBufferPtr larger_buffer = (max_samples == samples_a->sample_count()) ? samples_a : samples_b;
|
||||
|
||||
for (int i=0;i<mixed_samples->audio_params().channel_count();i++) {
|
||||
memcpy(&mixed_samples->data()[i][min_samples],
|
||||
&larger_buffer->data()[i][min_samples],
|
||||
memcpy(&mixed_samples->data(i)[min_samples],
|
||||
&larger_buffer->data(i)[min_samples],
|
||||
remainder * sizeof(float));
|
||||
}
|
||||
}
|
||||
@@ -354,7 +354,7 @@ NodeValueTable MathNodeBase::ValueInternal(NodeValueDatabase &value, Operation o
|
||||
if (!NumberIsNoOp(operation, number)) {
|
||||
for (int i=0;i<job.samples()->audio_params().channel_count();i++) {
|
||||
for (int j=0;j<job.samples()->sample_count();j++) {
|
||||
job.samples()->data()[i][j] = PerformAll(operation, job.samples()->data()[i][j], number);
|
||||
job.samples()->data(i)[j] = PerformAll(operation, job.samples()->data(i)[j], number);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -391,7 +391,7 @@ void MathNodeBase::ProcessSamplesInternal(NodeValueDatabase &values, MathNodeBas
|
||||
float number_flt = RetrieveNumber(number_val);
|
||||
|
||||
for (int i=0;i<output->audio_params().channel_count();i++) {
|
||||
output->data()[i][index] = PerformAll<float, float>(operation, input->data()[i][index], number_flt);
|
||||
output->data(i)[index] = PerformAll<float, float>(operation, input->data(i)[index], number_flt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user