static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats; AVFilterChannelLayouts *layouts = NULL; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_NONE }; int ret, i; if (!ctx->inputs[0]->in_channel_layouts || !ctx->inputs[0]->in_channel_layouts->nb_channel_layouts) { av_log(ctx, AV_LOG_WARNING, "No channel layout for input 1\n"); return AVERROR(EAGAIN); } if ((ret = ff_add_channel_layout(&layouts, ctx->inputs[0]->in_channel_layouts->channel_layouts[0])) < 0 || (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0) return ret; for (i = 0; i < 2; i++) { layouts = ff_all_channel_counts(); if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0) return ret; } formats = ff_make_format_list(sample_fmts); if ((ret = ff_set_common_formats(ctx, formats)) < 0) return ret; formats = ff_all_samplerates(); return ff_set_common_samplerates(ctx, formats); }
static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats = NULL; AConvertContext *aconvert = ctx->priv; AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; AVFilterChannelLayouts *layouts; ff_formats_ref(ff_all_formats(AVMEDIA_TYPE_AUDIO), &inlink->out_formats); if (aconvert->out_sample_fmt != AV_SAMPLE_FMT_NONE) { formats = NULL; ff_add_format(&formats, aconvert->out_sample_fmt); ff_formats_ref(formats, &outlink->in_formats); } else ff_formats_ref(ff_all_formats(AVMEDIA_TYPE_AUDIO), &outlink->in_formats); ff_channel_layouts_ref(ff_all_channel_layouts(), &inlink->out_channel_layouts); if (aconvert->out_chlayout != 0) { layouts = NULL; ff_add_channel_layout(&layouts, aconvert->out_chlayout); ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts); } else ff_channel_layouts_ref(ff_all_channel_layouts(), &outlink->in_channel_layouts); return 0; }
static int query_formats(AVFilterContext *ctx) { ChannelSplitContext *s = ctx->priv; AVFilterChannelLayouts *in_layouts = NULL; int i, ret; if ((ret = ff_set_common_formats(ctx, ff_planar_sample_fmts())) < 0 || (ret = ff_set_common_samplerates(ctx, ff_all_samplerates())) < 0) return ret; if ((ret = ff_add_channel_layout(&in_layouts, s->channel_layout)) < 0 || (ret = ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->out_channel_layouts)) < 0) return ret; for (i = 0; i < ctx->nb_outputs; i++) { AVFilterChannelLayouts *out_layouts = NULL; uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, i); if ((ret = ff_add_channel_layout(&out_layouts, channel)) < 0 || (ret = ff_channel_layouts_ref(out_layouts, &ctx->outputs[i]->in_channel_layouts)) < 0) return ret; } return 0; }
static int query_formats(AVFilterContext *ctx) { LADSPAContext *s = ctx->priv; AVFilterFormats *formats; AVFilterChannelLayouts *layouts; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; formats = ff_make_format_list(sample_fmts); if (!formats) return AVERROR(ENOMEM); ff_set_common_formats(ctx, formats); if (s->nb_inputs) { formats = ff_all_samplerates(); if (!formats) return AVERROR(ENOMEM); ff_set_common_samplerates(ctx, formats); } else { int sample_rates[] = { s->sample_rate, -1 }; ff_set_common_samplerates(ctx, ff_make_format_list(sample_rates)); } if (s->nb_inputs == 1 && s->nb_outputs == 1) { // We will instantiate multiple LADSPA_Handle, one over each channel layouts = ff_all_channel_layouts(); if (!layouts) return AVERROR(ENOMEM); ff_set_common_channel_layouts(ctx, layouts); } else { AVFilterLink *outlink = ctx->outputs[0]; if (s->nb_inputs >= 1) { AVFilterLink *inlink = ctx->inputs[0]; int64_t inlayout = FF_COUNT2LAYOUT(s->nb_inputs); layouts = NULL; ff_add_channel_layout(&layouts, inlayout); ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts); if (!s->nb_outputs) ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts); } if (s->nb_outputs >= 1) { int64_t outlayout = FF_COUNT2LAYOUT(s->nb_outputs); layouts = NULL; ff_add_channel_layout(&layouts, outlayout); ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts); } } return 0; }
static int query_formats(AVFilterContext *ctx) { AudioFIRContext *s = ctx->priv; AVFilterFormats *formats; AVFilterChannelLayouts *layouts; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGB0, AV_PIX_FMT_NONE }; int ret; if (s->response) { AVFilterLink *videolink = ctx->outputs[1]; formats = ff_make_format_list(pix_fmts); if ((ret = ff_formats_ref(formats, &videolink->in_formats)) < 0) return ret; } layouts = ff_all_channel_counts(); if (!layouts) return AVERROR(ENOMEM); if (s->ir_format) { ret = ff_set_common_channel_layouts(ctx, layouts); if (ret < 0) return ret; } else { AVFilterChannelLayouts *mono = NULL; ret = ff_add_channel_layout(&mono, AV_CH_LAYOUT_MONO); if (ret) return ret; if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts)) < 0) return ret; if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0) return ret; if ((ret = ff_channel_layouts_ref(mono, &ctx->inputs[1]->out_channel_layouts)) < 0) return ret; } formats = ff_make_format_list(sample_fmts); if ((ret = ff_set_common_formats(ctx, formats)) < 0) return ret; formats = ff_all_samplerates(); return ff_set_common_samplerates(ctx, formats); }
static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats = NULL; AVFilterChannelLayouts *layouts = NULL; AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGBA, AV_PIX_FMT_NONE }; int ret; formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0) return ret; layouts = ff_all_channel_layouts(); if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0) return ret; formats = ff_all_samplerates(); if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0) return ret; formats = ff_make_format_list(pix_fmts); if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0) return ret; return 0; }
static int query_formats(AVFilterContext *ctx) { AResampleContext *aresample = ctx->priv; int out_rate = av_get_int(aresample->swr, "osr", NULL); uint64_t out_layout = av_get_int(aresample->swr, "ocl", NULL); enum AVSampleFormat out_format = av_get_int(aresample->swr, "osf", NULL); AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; AVFilterFormats *in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO); AVFilterFormats *out_formats; AVFilterFormats *in_samplerates = ff_all_samplerates(); AVFilterFormats *out_samplerates; AVFilterChannelLayouts *in_layouts = ff_all_channel_layouts(); AVFilterChannelLayouts *out_layouts; ff_formats_ref (in_formats, &inlink->out_formats); ff_formats_ref (in_samplerates, &inlink->out_samplerates); ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts); if(out_rate > 0) { out_samplerates = ff_make_format_list((int[]) { out_rate, -1 });
static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats = NULL; AVFilterChannelLayouts *layout = NULL; AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGBA, AV_PIX_FMT_NONE }; formats = ff_make_format_list(sample_fmts); if (!formats) return AVERROR(ENOMEM); ff_formats_ref(formats, &inlink->out_formats); ff_add_channel_layout(&layout, AV_CH_LAYOUT_STEREO); ff_channel_layouts_ref(layout, &inlink->out_channel_layouts); formats = ff_all_samplerates(); if (!formats) return AVERROR(ENOMEM); ff_formats_ref(formats, &inlink->out_samplerates); formats = ff_make_format_list(pix_fmts); if (!formats) return AVERROR(ENOMEM); ff_formats_ref(formats, &outlink->in_formats); return 0; }
static int query_formats(AVFilterContext *ctx) { int i; AVFilterFormats *formats, *rates; AVFilterChannelLayouts *layouts; for (i = 0; i < 2; i++) { formats = ctx->inputs[i]->in_formats; ff_formats_ref(formats, &ctx->inputs[i]->out_formats); ff_formats_ref(formats, &ctx->outputs[i]->in_formats); rates = ff_all_samplerates(); ff_formats_ref(rates, &ctx->inputs[i]->out_samplerates); ff_formats_ref(rates, &ctx->outputs[i]->in_samplerates); layouts = ctx->inputs[i]->in_channel_layouts; ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts); ff_channel_layouts_ref(layouts, &ctx->outputs[i]->in_channel_layouts); } return 0; }
static int query_formats(AVFilterContext *ctx) { SoxContext *sox = ctx->priv; AVFilterFormats *formats = NULL; AVFilterChannelLayouts *layouts = NULL; ff_add_format(&formats, AV_SAMPLE_FMT_S32); ff_set_common_formats(ctx, formats); if (sox->effect->handler.flags & SOX_EFF_CHAN) { layouts = NULL; ff_add_channel_layout(&layouts, av_get_default_channel_layout(sox->effect->out_signal.channels)); ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts); ff_channel_layouts_ref(ff_all_channel_layouts(), &ctx->inputs[0]->out_channel_layouts); } else { ff_set_common_channel_layouts(ctx, ff_all_channel_layouts()); } return 0; }
static int query_formats(AVFilterContext *ctx) { AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; AVFilterFormats *in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO); AVFilterFormats *out_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO); AVFilterFormats *in_samplerates = ff_all_samplerates(); AVFilterFormats *out_samplerates = ff_all_samplerates(); AVFilterChannelLayouts *in_layouts = ff_all_channel_layouts(); AVFilterChannelLayouts *out_layouts = ff_all_channel_layouts(); ff_formats_ref(in_formats, &inlink->out_formats); ff_formats_ref(out_formats, &outlink->in_formats); ff_formats_ref(in_samplerates, &inlink->out_samplerates); ff_formats_ref(out_samplerates, &outlink->in_samplerates); ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts); ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); return 0; }
static int query_formats(AVFilterContext *ctx) { AudioSurroundContext *s = ctx->priv; AVFilterFormats *formats = NULL; AVFilterChannelLayouts *layouts = NULL; int ret; ret = ff_add_format(&formats, AV_SAMPLE_FMT_FLTP); if (ret) return ret; ret = ff_set_common_formats(ctx, formats); if (ret) return ret; layouts = NULL; ret = ff_add_channel_layout(&layouts, s->out_channel_layout); if (ret) return ret; ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts); if (ret) return ret; layouts = NULL; ret = ff_add_channel_layout(&layouts, s->in_channel_layout); if (ret) return ret; ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts); if (ret) return ret; formats = ff_all_samplerates(); if (!formats) return AVERROR(ENOMEM); return ff_set_common_samplerates(ctx, formats); }
static int query_formats(AVFilterContext *ctx) { SpectrumSynthContext *s = ctx->priv; AVFilterFormats *formats = NULL; AVFilterChannelLayouts *layout = NULL; AVFilterLink *magnitude = ctx->inputs[0]; AVFilterLink *phase = ctx->inputs[1]; AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV444P16, AV_PIX_FMT_NONE }; int ret, sample_rates[] = { 48000, -1 }; formats = ff_make_format_list(sample_fmts); if ((ret = ff_formats_ref (formats, &outlink->in_formats )) < 0 || (ret = ff_add_channel_layout (&layout, FF_COUNT2LAYOUT(s->channels))) < 0 || (ret = ff_channel_layouts_ref (layout , &outlink->in_channel_layouts)) < 0) return ret; sample_rates[0] = s->sample_rate; formats = ff_make_format_list(sample_rates); if (!formats) return AVERROR(ENOMEM); if ((ret = ff_formats_ref(formats, &outlink->in_samplerates)) < 0) return ret; formats = ff_make_format_list(pix_fmts); if (!formats) return AVERROR(ENOMEM); if ((ret = ff_formats_ref(formats, &magnitude->out_formats)) < 0) return ret; formats = ff_make_format_list(pix_fmts); if (!formats) return AVERROR(ENOMEM); if ((ret = ff_formats_ref(formats, &phase->out_formats)) < 0) return ret; return 0; }