[Libav-user] FFPlay input_filter and ffsink question
Stefano Sabatini
stefano.sabatini-lala at poste.it
Tue Jun 14 10:28:24 CEST 2011
On date Friday 2011-06-10 10:52:44 +0300, Farkas Szilard Levente encoded:
> Hello,
>
> In FFplay method configure_video_filters there are two filters used:
>
> 1. ffplay input
>
> static AVFilter input_filter =
> {
> .name = "ffplay_input",
>
> .priv_size = sizeof(FilterPriv),
>
> .init = input_init,
> .uninit = input_uninit,
>
> .query_formats = input_query_formats,
>
> .inputs = (AVFilterPad[]) {{ .name = NULL }},
> .outputs = (AVFilterPad[]) {{ .name = "default",
> .type = AVMEDIA_TYPE_VIDEO,
> .request_frame = input_request_frame,
> .config_props = input_config_props, },
> { .name = NULL }},
> };
>
> 2. ffsink from cmdutils.c
>
> AVFilter ffsink = {
> .name = "ffsink",
> .priv_size = sizeof(FFSinkContext),
> .init = ffsink_init,
>
> .query_formats = ffsink_query_formats,
>
> .inputs = (AVFilterPad[]) {{ .name = "default",
> .type = AVMEDIA_TYPE_VIDEO,
> .end_frame = null_end_frame,
> .min_perms = AV_PERM_READ, },
> { .name = NULL }},
> .outputs = (AVFilterPad[]) {{ .name = NULL }},
> };
>
> Why are they used only in ffplay? What filter combination should I use
> to do what ffplay does in configure_video_filters?
ffsink will be made public soon, so you will be able to use it
directly in your app.
The ffplay_input source is a variant of vsrc_buffer which allows
strict integration with libavcodec (thus allowing direct rendering),
but it is still unusable in ffmpeg due to some issues which need yet
to be fixed.
> Right now I am using BUFFER filter as SRC, insert NULLSINK as the last
> filter and use its input pin as my output.
>
> input --> .. --> last_filter --> [in] nullsink [null] [in] --> output
> | |
> | |
> +------------------------+
>
> Any other way to do what ffplay does?
More information about the Libav-user
mailing list