diff options
Diffstat (limited to 'src/filter/chain_filter_plugin.c')
-rw-r--r-- | src/filter/chain_filter_plugin.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/filter/chain_filter_plugin.c b/src/filter/chain_filter_plugin.c index 2c785a36..50cb66a4 100644 --- a/src/filter/chain_filter_plugin.c +++ b/src/filter/chain_filter_plugin.c @@ -162,26 +162,22 @@ chain_filter_close(struct filter *_filter) g_slist_foreach(chain->children, chain_close_child, NULL); } -static const void * -chain_filter_filter(struct filter *_filter, - const void *src, size_t src_size, - size_t *dest_size_r, GError **error_r) +static AVFrame *chain_filter_filter(struct filter *_filter, + AVFrame *frame) { - struct filter_chain *chain = (struct filter_chain *)_filter; + struct filter_chain *chain = (struct filter_chain *)_filter; - for (GSList *i = chain->children; i != NULL; i = g_slist_next(i)) { - struct filter *filter = i->data; + for (GSList *i = chain->children; i != NULL; i = g_slist_next(i)) { + struct filter *filter = i->data; - /* feed the output of the previous filter as input - into the current one */ - src = filter_filter(filter, src, src_size, &src_size, error_r); - if (src == NULL) - return NULL; - } + /* feed the output of the previous filter as input + into the current one */ + frame = filter_filter(filter, frame); + if (!frame) + return NULL; + } - /* return the output of the last filter */ - *dest_size_r = src_size; - return src; + return frame; } const struct filter_plugin chain_filter_plugin = { |