/**
* Open one instance of this filter.
*
- * This should allocate the output buffer of the given filter node and do any
- * other filter-specific preparations like initializing the private_data member
- * of \a fn suitably. The open function is assumed to succeed.
+ * This should allocate the output buffer of the given filter node and
+ * do any other filter-specific preparations like initializing the
+ * private_data member of \a fn suitably. The open function is
+ * optional, If it is provided, it is assumed to succeed.
*/
void (*open)(struct filter_node *fn);
/**
* Close one instance of this filter.
*
- * Free all resources of associated with \a fn that were previously allocated
- * by the open() function. It's OK to leave this alone if the filter does not
- * need any cleanups.
+ * Free all resources associated with \a fn that were previously
+ * allocated by the open() function. It's OK to set this to NULL if the
+ * filter does not need to perform any cleanup operation.
*/
void (*close)(struct filter_node *fn);
/**
};
void filter_init(void);
-int check_filter_arg(char *filter_arg, void **conf);
+int check_filter_arg(const char *fa, void **conf);
void print_filter_helps(unsigned flags);
void generic_filter_pre_select(struct sched *s, void *context);
int decoder_execute(const char *cmd, unsigned sample_rate, unsigned channels,
DECLARE_FILTER_INITS
-/** The filter array, one structure for each supported filter. */
const struct filter *filter_get(int filter_num);