aboutsummaryrefslogtreecommitdiff
path: root/src/filter/chain_filter_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/filter/chain_filter_plugin.c')
-rw-r--r--src/filter/chain_filter_plugin.c28
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 = {