summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-04-19 00:06:38 +0200
committerCarl Hetherington <cth@carlh.net>2020-04-20 00:31:10 +0200
commit03e6fd884b52a3c7c82c9c582d34ca3b5df4f2c5 (patch)
treeb8b679ffc5a176cdc59d7edccefdec2ba46d2447
parent40702d11e31444533ca76267d48c5dc4bdee71e1 (diff)
Some more stack allocation.
-rw-r--r--src/leqm-nrt.cc20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/leqm-nrt.cc b/src/leqm-nrt.cc
index 87fc4a5..25ecbe9 100644
--- a/src/leqm-nrt.cc
+++ b/src/leqm-nrt.cc
@@ -260,7 +260,7 @@ double convloglin_single(double in);
double inputcalib (double dbdiffch);
void inversefft2(std::vector<double> const& eqfreqresp, std::vector<double>& ir, int npoints);
void * worker_function(void * argfunc);
-void logleqm(FILE * filehandle, double featuretimesec, Sum * oldsum);
+void logleqm(FILE * filehandle, double featuretimesec, Sum const& oldsum);
void logleqm10(FILE * filehandle, double featuretimesec, double longaverage);
@@ -568,7 +568,7 @@ Result calculate(
// read through the entire file
- auto totsum = new Sum();
+ Sum totsum;
Result result;
sf_count_t samples_read = 0;
@@ -587,7 +587,7 @@ Result calculate(
sf_info.channels,
number_of_filter_interpolation_points,
ir,
- totsum,
+ &totsum,
channel_conf_cal,
enable_leqm10_log ? staindex++ : 0,
enable_leqm10_log ? shorttermaveragedarray : 0,
@@ -602,7 +602,7 @@ Result calculate(
worker_args.clear();
//simply log here your measurement it will be a multiple of your threads and your buffer
if (leqmlogfile) {
- logleqm(leqmlogfile, ((double) totsum->nsamples())/((double) sf_info.samplerate), totsum);
+ logleqm(leqmlogfile, ((double) totsum.nsamples())/((double) sf_info.samplerate), totsum);
} //endlog
}
}
@@ -612,12 +612,12 @@ Result calculate(
worker_args.clear();
}
if (leqmlogfile) {
- logleqm(leqmlogfile, ((double) totsum->nsamples())/((double) sf_info.samplerate), totsum );
+ logleqm(leqmlogfile, ((double) totsum.nsamples())/((double) sf_info.samplerate), totsum );
}
}
- result.leq_nw = totsum->rms();
- result.leq_m = totsum->leqm();
+ result.leq_nw = totsum.rms();
+ result.leq_m = totsum.leqm();
if (measure_timing) {
struct timespec stoptime;
@@ -680,8 +680,6 @@ Result calculate(
sf_close(file);
- delete totsum;
-
return result;
}
@@ -829,11 +827,11 @@ Result calculate(
return pow(10, dbdiffch / 20);
}
- void logleqm(FILE * filehandle, double featuretimesec, Sum * oldsum) {
+ void logleqm(FILE * filehandle, double featuretimesec, Sum const& oldsum) {
fprintf(filehandle, "%.4f", featuretimesec);
fprintf(filehandle, "\t");
- fprintf(filehandle, "%.4f\n", oldsum->leqm());
+ fprintf(filehandle, "%.4f\n", oldsum.leqm());
}