Lines 35-40
Link Here
|
35 |
*/ |
35 |
*/ |
36 |
|
36 |
|
37 |
#include "PluginAdapter.h" |
37 |
#include "PluginAdapter.h" |
|
|
38 |
#include <cstring> // strdup (evil) :P |
39 |
#include <cstdlib> // std::malloc,free |
38 |
|
40 |
|
39 |
//#define DEBUG_PLUGIN_ADAPTER 1 |
41 |
//#define DEBUG_PLUGIN_ADAPTER 1 |
40 |
|
42 |
|
Lines 181-193
Link Here
|
181 |
|
183 |
|
182 |
m_descriptor.parameterCount = m_parameters.size(); |
184 |
m_descriptor.parameterCount = m_parameters.size(); |
183 |
m_descriptor.parameters = (const VampParameterDescriptor **) |
185 |
m_descriptor.parameters = (const VampParameterDescriptor **) |
184 |
malloc(m_parameters.size() * sizeof(VampParameterDescriptor)); |
186 |
std::malloc(m_parameters.size() * sizeof(VampParameterDescriptor)); |
185 |
|
187 |
|
186 |
unsigned int i; |
188 |
unsigned int i; |
187 |
|
189 |
|
188 |
for (i = 0; i < m_parameters.size(); ++i) { |
190 |
for (i = 0; i < m_parameters.size(); ++i) { |
189 |
VampParameterDescriptor *desc = (VampParameterDescriptor *) |
191 |
VampParameterDescriptor *desc = (VampParameterDescriptor *) |
190 |
malloc(sizeof(VampParameterDescriptor)); |
192 |
std::malloc(sizeof(VampParameterDescriptor)); |
191 |
desc->identifier = strdup(m_parameters[i].identifier.c_str()); |
193 |
desc->identifier = strdup(m_parameters[i].identifier.c_str()); |
192 |
desc->name = strdup(m_parameters[i].name.c_str()); |
194 |
desc->name = strdup(m_parameters[i].name.c_str()); |
193 |
desc->description = strdup(m_parameters[i].description.c_str()); |
195 |
desc->description = strdup(m_parameters[i].description.c_str()); |
Lines 200-206
Link Here
|
200 |
desc->valueNames = 0; |
202 |
desc->valueNames = 0; |
201 |
if (desc->isQuantized && !m_parameters[i].valueNames.empty()) { |
203 |
if (desc->isQuantized && !m_parameters[i].valueNames.empty()) { |
202 |
desc->valueNames = (const char **) |
204 |
desc->valueNames = (const char **) |
203 |
malloc((m_parameters[i].valueNames.size()+1) * sizeof(char *)); |
205 |
std::malloc((m_parameters[i].valueNames.size()+1) * sizeof(char *)); |
204 |
for (unsigned int j = 0; j < m_parameters[i].valueNames.size(); ++j) { |
206 |
for (unsigned int j = 0; j < m_parameters[i].valueNames.size(); ++j) { |
205 |
desc->valueNames[j] = strdup(m_parameters[i].valueNames[j].c_str()); |
207 |
desc->valueNames[j] = strdup(m_parameters[i].valueNames[j].c_str()); |
206 |
} |
208 |
} |
Lines 211-217
Link Here
|
211 |
|
213 |
|
212 |
m_descriptor.programCount = m_programs.size(); |
214 |
m_descriptor.programCount = m_programs.size(); |
213 |
m_descriptor.programs = (const char **) |
215 |
m_descriptor.programs = (const char **) |
214 |
malloc(m_programs.size() * sizeof(const char *)); |
216 |
std::malloc(m_programs.size() * sizeof(const char *)); |
215 |
|
217 |
|
216 |
for (i = 0; i < m_programs.size(); ++i) { |
218 |
for (i = 0; i < m_programs.size(); ++i) { |
217 |
m_descriptor.programs[i] = strdup(m_programs[i].c_str()); |
219 |
m_descriptor.programs[i] = strdup(m_programs[i].c_str()); |
Lines 261-291
Link Here
|
261 |
|
263 |
|
262 |
if (!m_populated) return; |
264 |
if (!m_populated) return; |
263 |
|
265 |
|
264 |
free((void *)m_descriptor.identifier); |
266 |
std::free((void *)m_descriptor.identifier); |
265 |
free((void *)m_descriptor.name); |
267 |
std::free((void *)m_descriptor.name); |
266 |
free((void *)m_descriptor.description); |
268 |
std::free((void *)m_descriptor.description); |
267 |
free((void *)m_descriptor.maker); |
269 |
std::free((void *)m_descriptor.maker); |
268 |
free((void *)m_descriptor.copyright); |
270 |
std::free((void *)m_descriptor.copyright); |
269 |
|
271 |
|
270 |
for (unsigned int i = 0; i < m_descriptor.parameterCount; ++i) { |
272 |
for (unsigned int i = 0; i < m_descriptor.parameterCount; ++i) { |
271 |
const VampParameterDescriptor *desc = m_descriptor.parameters[i]; |
273 |
const VampParameterDescriptor *desc = m_descriptor.parameters[i]; |
272 |
free((void *)desc->identifier); |
274 |
std::free((void *)desc->identifier); |
273 |
free((void *)desc->name); |
275 |
std::free((void *)desc->name); |
274 |
free((void *)desc->description); |
276 |
std::free((void *)desc->description); |
275 |
free((void *)desc->unit); |
277 |
std::free((void *)desc->unit); |
276 |
if (desc->valueNames) { |
278 |
if (desc->valueNames) { |
277 |
for (unsigned int j = 0; desc->valueNames[j]; ++j) { |
279 |
for (unsigned int j = 0; desc->valueNames[j]; ++j) { |
278 |
free((void *)desc->valueNames[j]); |
280 |
std::free((void *)desc->valueNames[j]); |
279 |
} |
281 |
} |
280 |
free((void *)desc->valueNames); |
282 |
std::free((void *)desc->valueNames); |
281 |
} |
283 |
} |
282 |
} |
284 |
} |
283 |
free((void *)m_descriptor.parameters); |
285 |
std::free((void *)m_descriptor.parameters); |
284 |
|
286 |
|
285 |
for (unsigned int i = 0; i < m_descriptor.programCount; ++i) { |
287 |
for (unsigned int i = 0; i < m_descriptor.programCount; ++i) { |
286 |
free((void *)m_descriptor.programs[i]); |
288 |
std::free((void *)m_descriptor.programs[i]); |
287 |
} |
289 |
} |
288 |
free((void *)m_descriptor.programs); |
290 |
std::free((void *)m_descriptor.programs); |
289 |
|
291 |
|
290 |
if (m_adapterMap) { |
292 |
if (m_adapterMap) { |
291 |
|
293 |
|
Lines 520-538
Link Here
|
520 |
std::cerr << "PluginAdapterBase::Impl::vampReleaseOutputDescriptor(" << desc << ")" << std::endl; |
522 |
std::cerr << "PluginAdapterBase::Impl::vampReleaseOutputDescriptor(" << desc << ")" << std::endl; |
521 |
#endif |
523 |
#endif |
522 |
|
524 |
|
523 |
if (desc->identifier) free((void *)desc->identifier); |
525 |
if (desc->identifier) std::free((void *)desc->identifier); |
524 |
if (desc->name) free((void *)desc->name); |
526 |
if (desc->name) std::free((void *)desc->name); |
525 |
if (desc->description) free((void *)desc->description); |
527 |
if (desc->description) std::free((void *)desc->description); |
526 |
if (desc->unit) free((void *)desc->unit); |
528 |
if (desc->unit) std::free((void *)desc->unit); |
527 |
if (desc->hasFixedBinCount && desc->binNames) { |
529 |
if (desc->hasFixedBinCount && desc->binNames) { |
528 |
for (unsigned int i = 0; i < desc->binCount; ++i) { |
530 |
for (unsigned int i = 0; i < desc->binCount; ++i) { |
529 |
if (desc->binNames[i]) { |
531 |
if (desc->binNames[i]) { |
530 |
free((void *)desc->binNames[i]); |
532 |
std::free((void *)desc->binNames[i]); |
531 |
} |
533 |
} |
532 |
} |
534 |
} |
533 |
} |
535 |
} |
534 |
if (desc->binNames) free((void *)desc->binNames); |
536 |
if (desc->binNames) std::free((void *)desc->binNames); |
535 |
free((void *)desc); |
537 |
std::free((void *)desc); |
536 |
} |
538 |
} |
537 |
|
539 |
|
538 |
VampFeatureList * |
540 |
VampFeatureList * |
Lines 583-595
Link Here
|
583 |
for (unsigned int i = 0; i < outputCount; ++i) { |
585 |
for (unsigned int i = 0; i < outputCount; ++i) { |
584 |
for (unsigned int j = 0; j < m_fsizes[plugin][i]; ++j) { |
586 |
for (unsigned int j = 0; j < m_fsizes[plugin][i]; ++j) { |
585 |
if (list[i].features[j].label) { |
587 |
if (list[i].features[j].label) { |
586 |
free(list[i].features[j].label); |
588 |
std::free(list[i].features[j].label); |
587 |
} |
589 |
} |
588 |
if (list[i].features[j].values) { |
590 |
if (list[i].features[j].values) { |
589 |
free(list[i].features[j].values); |
591 |
std::free(list[i].features[j].values); |
590 |
} |
592 |
} |
591 |
} |
593 |
} |
592 |
if (list[i].features) free(list[i].features); |
594 |
if (list[i].features) std::free(list[i].features); |
593 |
} |
595 |
} |
594 |
m_fs.erase(plugin); |
596 |
m_fs.erase(plugin); |
595 |
m_fsizes.erase(plugin); |
597 |
m_fsizes.erase(plugin); |
Lines 640-646
Link Here
|
640 |
(*m_pluginOutputs[plugin])[i]; |
642 |
(*m_pluginOutputs[plugin])[i]; |
641 |
|
643 |
|
642 |
VampOutputDescriptor *desc = (VampOutputDescriptor *) |
644 |
VampOutputDescriptor *desc = (VampOutputDescriptor *) |
643 |
malloc(sizeof(VampOutputDescriptor)); |
645 |
std::malloc(sizeof(VampOutputDescriptor)); |
644 |
|
646 |
|
645 |
desc->identifier = strdup(od.identifier.c_str()); |
647 |
desc->identifier = strdup(od.identifier.c_str()); |
646 |
desc->name = strdup(od.name.c_str()); |
648 |
desc->name = strdup(od.name.c_str()); |
Lines 651-657
Link Here
|
651 |
|
653 |
|
652 |
if (od.hasFixedBinCount && od.binCount > 0) { |
654 |
if (od.hasFixedBinCount && od.binCount > 0) { |
653 |
desc->binNames = (const char **) |
655 |
desc->binNames = (const char **) |
654 |
malloc(od.binCount * sizeof(const char *)); |
656 |
std::malloc(od.binCount * sizeof(const char *)); |
655 |
|
657 |
|
656 |
for (unsigned int i = 0; i < od.binCount; ++i) { |
658 |
for (unsigned int i = 0; i < od.binCount; ++i) { |
657 |
if (i < od.binNames.size()) { |
659 |
if (i < od.binNames.size()) { |
Lines 750-756
Link Here
|
750 |
feature->nsec = fl[j].timestamp.nsec; |
752 |
feature->nsec = fl[j].timestamp.nsec; |
751 |
feature->valueCount = fl[j].values.size(); |
753 |
feature->valueCount = fl[j].values.size(); |
752 |
|
754 |
|
753 |
if (feature->label) free(feature->label); |
755 |
if (feature->label) std::free(feature->label); |
754 |
|
756 |
|
755 |
if (fl[j].label.empty()) { |
757 |
if (fl[j].label.empty()) { |
756 |
feature->label = 0; |
758 |
feature->label = 0; |