comparison vamp-sdk/Plugin.h @ 27:44ec6c633113

* Permit plugins to vary the number of values per output based on the number of channels, step size, and block size passed to initialise().
author cannam
date Wed, 10 May 2006 16:30:39 +0000
parents 68b8b32a2070
children 154f86cb8c99
comparison
equal deleted inserted replaced
26:c29eccb892f1 27:44ec6c633113
77 * some or all of them. Parameters that are not explicitly set should 77 * some or all of them. Parameters that are not explicitly set should
78 * take their default values as specified in the parameter descriptor. 78 * take their default values as specified in the parameter descriptor.
79 * When a program is set, the parameter values may change and the host 79 * When a program is set, the parameter values may change and the host
80 * will re-query them to check. 80 * will re-query them to check.
81 * 81 *
82 * 4. Host queries the preferred step size, block size, number of 82 * 4. Host queries the preferred step size, block size and number of
83 * channels, and the number of values per feature for the plugin's 83 * channels. These may all vary depending on the parameter values.
84 * outputs. These may all vary depending on the parameter values.
85 * (Note however that you cannot make the number of distinct outputs 84 * (Note however that you cannot make the number of distinct outputs
86 * dependent on parameter values; nor can you make any of these depend 85 * dependent on parameter values.)
87 * on the number of input channels.)
88 * 86 *
89 * 5. Plugin is properly initialised with a call to initialise. This 87 * 5. Plugin is properly initialised with a call to initialise. This
90 * fixes the step size, block size, and number of channels, as well as 88 * fixes the step size, block size, and number of channels, as well as
91 * all of the parameter and program settings. If the values passed in 89 * all of the parameter and program settings. If the values passed in
92 * to initialise do not match the plugin's advertised preferred values 90 * to initialise do not match the plugin's advertised preferred values
93 * from step 4, the plugin may refuse to initialise and return false 91 * from step 4, the plugin may refuse to initialise and return false
94 * (although if possible it should accept the new values). 92 * (although if possible it should accept the new values).
95 * 93 *
96 * 6. Host will repeatedly call the process method to pass in blocks 94 * 6. Host finally checks the number of values per output (which may
95 * vary depending on the number of channels, step size and block size
96 * as well as the parameter values).
97 *
98 * 7. Host will repeatedly call the process method to pass in blocks
97 * of input data. This method may return features extracted from that 99 * of input data. This method may return features extracted from that
98 * data (if the plugin is causal). 100 * data (if the plugin is causal).
99 * 101 *
100 * 7. Host will call getRemainingFeatures exactly once, after all the 102 * 8. Host will call getRemainingFeatures exactly once, after all the
101 * input data has been processed. This may return any non-causal or 103 * input data has been processed. This may return any non-causal or
102 * leftover features. 104 * leftover features.
103 * 105 *
104 * 8. At any point after initialise was called, the host may 106 * 9. At any point after initialise was called, the host may
105 * optionally call the reset method and restart processing. (This 107 * optionally call the reset method and restart processing. (This
106 * does not mean it can change the parameters, which are fixed from 108 * does not mean it can change the parameters, which are fixed from
107 * initialise until destruction.) 109 * initialise until destruction.)
108 * 110 *
109 * A plugin does not need to handle the case where setParameter or 111 * A plugin does not need to handle the case where setParameter or