@@ -122,10 +122,10 @@ static int init_filters(const char *filters_descr)
}
/* buffer video sink: to terminate the filter chain. */
- ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
- NULL, NULL, filter_graph);
- if (ret < 0) {
+ buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out");
+ if (!buffersink_ctx) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
+ ret = AVERROR(ENOMEM);
goto end;
}
@@ -136,6 +136,12 @@ static int init_filters(const char *filters_descr)
goto end;
}
+ ret = avfilter_init_dict(buffersink_ctx, NULL);
+ if (ret < 0) {
+ av_log(NULL, AV_LOG_ERROR, "Cannot initialize buffer sink\n");
+ goto end;
+ }
+
/*
* Set the endpoints for the filter graph. The filter_graph will
* be linked to the graph described by filters_descr.