Mercurial > hg > vamp-plugin-sdk
comparison vamp-sdk/Plugin.h @ 167:31eda4b11f2b
* First bit of Vamp v2 work -- add an optional duration to features in
a backward compatible way.
Warning: this code is unstable and experimental and may change
significantly in the coming weeks.
author | cannam |
---|---|
date | Thu, 17 Jul 2008 08:52:26 +0000 |
parents | c1dce0b033cb |
children | 1982246a3902 |
comparison
equal
deleted
inserted
replaced
166:120f88880347 | 167:31eda4b11f2b |
---|---|
302 * the output (i.e. the "duration" of each sample, in time, | 302 * the output (i.e. the "duration" of each sample, in time, |
303 * will be 1/sampleRate seconds). It's recommended to set | 303 * will be 1/sampleRate seconds). It's recommended to set |
304 * this to zero if that behaviour is not desired. | 304 * this to zero if that behaviour is not desired. |
305 */ | 305 */ |
306 float sampleRate; | 306 float sampleRate; |
307 | |
308 OutputDescriptor() : // defaults for mandatory non-class-type members | |
309 hasFixedBinCount(false), hasKnownExtents(false), isQuantized(false), | |
310 sampleType(OneSamplePerStep) { } | |
307 }; | 311 }; |
308 | 312 |
309 typedef std::vector<OutputDescriptor> OutputList; | 313 typedef std::vector<OutputDescriptor> OutputList; |
310 | 314 |
311 /** | 315 /** |
317 | 321 |
318 struct Feature | 322 struct Feature |
319 { | 323 { |
320 /** | 324 /** |
321 * True if an output feature has its own timestamp. This is | 325 * True if an output feature has its own timestamp. This is |
322 * mandatory if the output has VariableSampleRate, and is | 326 * mandatory if the output has VariableSampleRate, optional if |
323 * likely to be disregarded otherwise. | 327 * the output has FixedSampleRate, and unused if the output |
328 * has OneSamplePerStep. | |
324 */ | 329 */ |
325 bool hasTimestamp; | 330 bool hasTimestamp; |
326 | 331 |
327 /** | 332 /** |
328 * Timestamp of the output feature. This is mandatory if the | 333 * Timestamp of the output feature. This is mandatory if the |
329 * output has VariableSampleRate, and is likely to be | 334 * output has VariableSampleRate or if the output has |
330 * disregarded otherwise. Undefined if hasTimestamp is false. | 335 * FixedSampleRate and hasTimestamp is true, and unused |
336 * otherwise. | |
331 */ | 337 */ |
332 RealTime timestamp; | 338 RealTime timestamp; |
339 | |
340 /** | |
341 * True if an output feature has a specified duration. This | |
342 * is optional if the output has VariableSampleRate or | |
343 * FixedSampleRate, and and unused if the output has | |
344 * OneSamplePerStep. | |
345 */ | |
346 bool hasDuration; | |
347 | |
348 /** | |
349 * Duration of the output feature. This is mandatory if the | |
350 * output has VariableSampleRate or FixedSampleRate and | |
351 * hasDuration is true, and unused otherwise. | |
352 */ | |
353 RealTime duration; | |
333 | 354 |
334 /** | 355 /** |
335 * Results for a single sample of this feature. If the output | 356 * Results for a single sample of this feature. If the output |
336 * hasFixedBinCount, there must be the same number of values | 357 * hasFixedBinCount, there must be the same number of values |
337 * as the output's binCount count. | 358 * as the output's binCount count. |
340 | 361 |
341 /** | 362 /** |
342 * Label for the sample of this feature. | 363 * Label for the sample of this feature. |
343 */ | 364 */ |
344 std::string label; | 365 std::string label; |
366 | |
367 Feature() : // defaults for mandatory non-class-type members | |
368 hasTimestamp(false), hasDuration(false) { } | |
345 }; | 369 }; |
346 | 370 |
347 typedef std::vector<Feature> FeatureList; | 371 typedef std::vector<Feature> FeatureList; |
372 | |
348 typedef std::map<int, FeatureList> FeatureSet; // key is output no | 373 typedef std::map<int, FeatureList> FeatureSet; // key is output no |
349 | 374 |
350 /** | 375 /** |
351 * Process a single block of input data. | 376 * Process a single block of input data. |
352 * | 377 * |