return 0;
}
-static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
+static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
{
AResampleContext *aresample = inlink->dst->priv;
const int n_in = insamplesref->audio->nb_samples;
outsamplesref->audio->nb_samples = n_out;
- ret = ff_filter_samples(outlink, outsamplesref);
+ ret = ff_filter_frame(outlink, outsamplesref);
aresample->req_fullfilled= 1;
avfilter_unref_buffer(insamplesref);
return ret;
outsamplesref->pts = ROUNDED_DIV(outsamplesref->pts, inlink->sample_rate);
#endif
- ff_filter_samples(outlink, outsamplesref);
+ ff_filter_frame(outlink, outsamplesref);
return 0;
}
return ret;
}
+static const AVFilterPad aresample_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL },
+};
+
+static const AVFilterPad aresample_outputs[] = {
+ {
+ .name = "default",
+ .config_props = config_output,
+ .request_frame = request_frame,
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL },
+};
+
AVFilter avfilter_af_aresample = {
.name = "aresample",
.description = NULL_IF_CONFIG_SMALL("Resample audio data."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AResampleContext),
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_samples = filter_samples,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .config_props = config_output,
- .request_frame = request_frame,
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}},
+ .inputs = aresample_inputs,
+ .outputs = aresample_outputs,
};