C++ avfilter\u图形\u创建\u过滤器,错误值-12

C++ avfilter\u图形\u创建\u过滤器,错误值-12,c++,ffmpeg,C++,Ffmpeg,我在创建一个图形过滤器时遇到了一些问题,我不断在ret val上得到一个错误-12,我不知道为什么,我确保分配了buffersrc_ctx和filter_graph 我可以去哪里查找错误-12是什么,如果有人能告诉我他们是否看到了任何东西,我将不胜感激 提前谢谢 _snprintf( args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%u",

我在创建一个图形过滤器时遇到了一些问题,我不断在ret val上得到一个错误-12,我不知道为什么,我确保分配了buffersrc_ctx和filter_graph

我可以去哪里查找错误-12是什么,如果有人能告诉我他们是否看到了任何东西,我将不胜感激

提前谢谢

_snprintf( args, sizeof(args), 
           "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%u", 
        pFormatCtx->streams[audioStream]->time_base.num, 
            pFormatCtx->streams[audioStream]->time_base.den,
        dec_ctx->sample_rate,
        av_get_sample_fmt_name(dec_ctx->sample_fmt),
        dec_ctx->channel_layout );

ret = avfilter_graph_create_filter(&buffersrc_ctx, 
                                   buffersrc, 
                                   NULL, args, NULL, filter_graph);

我相信现在回答这个问题已经有些晚了,但如果有人和我遇到同样的问题,这可能会有所帮助


如果
buffersrc
NULL
可能是因为您忘记了使用命令注册过滤器:
avfilter\u register\u all()

您应该发布准确的错误。本质上发生的是avfilter\u graph\u create\u filter返回-12的返回代码,函数会说如果小于0,则返回错误。avfilter*buffersrc=avfilter\u get\u by\u by\u name(“abuffer”);我注意到,当我调用它时,buffersrc仍然为NULL。这个调用有什么问题吗?如果“AVFilter”未注册,则返回错误-12,但这不是因为“buffersrc”为空。“buffersrc”在“avfilter\u graph\u create\u filter”中初始化,因此可以为空。无论如何,否决票太苛刻了,因为一个可能的解决方案是你答案的一部分。