if ((ret = avfilter_graph_parse_ptr(graph, filtergraph, &inputs, &outputs, NULL)) < 0)
goto fail;
avfilter_graph_parse_ptr 返回值 -22问题. 报 no such filter: ' '
每次调用 ffplay_init时 is->vfilter_idx 是0 , vfilters_list 索引位置的内容不对. avfilter_graph_parse_ptr 返回值 -22,no such filter: ' ' 。 查找这个 vfilters_list在 GROW_ARRAY中,做数组扩容. nb_vfilters也在增长, 可能ffmpeg 考虑的是多个vf 过滤器形成list。 查看源码发现no such filter: '' 对应的位置就是filtername为空。 顺着这条线,找到了 vfilters_list 索引位置的内容不对。
而我实际应用就是每次ffplay_init 带的arg参数里面就一个vf. 放在vf[0]就好.
最后我在ffplay_init最初时avfree (vfilters_list),nb_vfilters = 0;
解决了avfilter_graph_parse_ptr 返回值 -22问题. 报 no such filter: ''
部分代码
static const char **vfilters_list = NULL;
static int nb_vfilters = 0;
static int opt_add_vfilter(void *optctx, const char *opt, const char *a