C++ avfilter\u图形\u创建\u过滤器,错误值-12
我在创建一个图形过滤器时遇到了一些问题,我不断在ret val上得到一个错误-12,我不知道为什么,我确保分配了buffersrc_ctx和filter_graph 我可以去哪里查找错误-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",
_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”中初始化,因此可以为空。无论如何,否决票太苛刻了,因为一个可能的解决方案是你答案的一部分。