我有一个结构AVFilter,如何访问嵌套结构变量
typedef struct AVFilter
{
const char *name;
const char *description;
const AVClass *priv_class;
int priv_size;
int (*init)(AVFilterContext *ctx);
void (*uninit)(AVFilterContext *ctx);
int (*query_formats)(AVFilterContext *);
const AVFilterPad *inputs;
const AVFilterPad *outputs;
int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags);
} AVFilter;
我访问像sturctur变量,
AVFilter avfilter_vsrc_color = {
avfilter_vsrc_color.name = "color",
avfilter_vsrc_color.description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
avfilter_vsrc_color.priv_class = &color_class, // error here
avfilter_vsrc_color.priv_size = sizeof(TestSourceContext),// error here
avfilter_vsrc_color.init = color_init,// error here
avfilter_vsrc_color.uninit = uninit,// error here
avfilter_vsrc_color.query_formats = color_query_formats,// error here
avfilter_vsrc_color.inputs = NULL,// error here
avfilter_vsrc_color.outputs = color_outputs,// error here
avfilter_vsrc_color.process_command = color_process_command // error here
};
我不知道如何访问priv_class.Please帮我解决这个问题
如果我不喜欢这样,
AVFilter avfilter_vsrc_color=
{
.name = "color", //error
.description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
.priv_class = &color_class,
.priv_size = sizeof(TestSourceContext),
.init = color_init,
.uninit = uninit,
.query_formats = color_query_formats,
.inputs = NULL,
.outputs = color_outputs,
.process_command = color_process_command
};
我米得到错误一样,
2>c:\users\awki6\desktop\ffmpeg\libavfilter\vsrc_testsrc.cpp(271): error C2143: syntax error : missing '}' before '.'
2>c:\users\awki6\desktop\ffmpeg\libavfilter\vsrc_testsrc.cpp(271): error C2143: syntax error : missing ';' before '.'
什么问题?你想对'priv_class'做什么?什么是“AVClass”? – Beta
AVClass是另一种结构,priv_class是指向AVCLass的指针。 – JAYANTHI
我知道。我在其他问题中找到了'AVClass'的定义。你还没有回答我的其他问题。你似乎在使用逗号,你应该使用分号。您仍然在发布错误消息而不告诉我们哪些行对应于行号。你已经编辑了这个问题来引用'color_class'而不解释它是什么。在你走路之前,你似乎试图跑步。投票结束。 – Beta