Exemple #1
0
int avfilter_default_query_formats(AVFilterContext *ctx)
{
    avfilter_set_common_pixel_formats(ctx, avfilter_all_formats(AVMEDIA_TYPE_VIDEO));
    avfilter_set_common_sample_formats(ctx, avfilter_all_formats(AVMEDIA_TYPE_AUDIO));
    avfilter_set_common_channel_layouts(ctx, avfilter_all_channel_layouts());
    avfilter_set_common_packing_formats(ctx, avfilter_all_packing_formats());

    return 0;
}
Exemple #2
0
int avfilter_default_query_formats(AVFilterContext *ctx)
{
    enum AVMediaType type = ctx->inputs  && ctx->inputs [0] ? ctx->inputs [0]->type :
                            ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
                            AVMEDIA_TYPE_VIDEO;

    avfilter_set_common_formats(ctx, avfilter_all_formats(type));
    return 0;
}
Exemple #3
0
static int query_formats(AVFilterContext *ctx)
{
    AVFilterLink *inlink  = ctx->inputs[0];
    AVFilterLink *outlink = ctx->outputs[0];

    AVFilterFormats        *in_formats      = avfilter_all_formats(AVMEDIA_TYPE_AUDIO);
    AVFilterFormats        *out_formats     = avfilter_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();

    avfilter_formats_ref(in_formats,  &inlink->out_formats);
    avfilter_formats_ref(out_formats, &outlink->in_formats);

    avfilter_formats_ref(in_samplerates,  &inlink->out_samplerates);
    avfilter_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;
}
Exemple #4
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      = avfilter_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;

    avfilter_formats_ref  (in_formats,      &inlink->out_formats);
    avfilter_formats_ref  (in_samplerates,  &inlink->out_samplerates);
    ff_channel_layouts_ref(in_layouts,      &inlink->out_channel_layouts);

    if(out_rate > 0) {
        out_samplerates = avfilter_make_format_list((int[]){ out_rate, -1 });
Exemple #5
0
static int mpsink_query_formats(AVFilterContext *ctx)
{
    struct mpsink_priv *c = ctx->priv;
    struct vf_instance *vf = c->vf;
    AVFilterFormats *all;
    enum AVPixelFormat *sup;
    unsigned i, nsup = 0;
    int ifmt;

    all = avfilter_all_formats(AVMEDIA_TYPE_VIDEO);
    sup = av_mallocz(sizeof(*sup) * (all->format_count + 1));
    if (!sup)
        return AVERROR(errno);
    for(i = 0; i < all->format_count; i++) {
        ifmt = pixfmt2imgfmt(all->formats[i]);
        if (vf->next->query_format(vf->next, ifmt) > 0)
            sup[nsup++] = all->formats[i];
    }
    sup[nsup++] = AV_PIX_FMT_NONE;
    avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(sup));
    av_free(sup);
    return 0;
}