[FFmpeg-devel] [PATCH] Factorize code from video_thread() and put it in configure_video_filters().
Michael Niedermayer
michaelni
Tue Feb 1 22:08:35 CET 2011
On Tue, Feb 01, 2011 at 08:28:09PM +0100, Stefano Sabatini wrote:
> On date Tuesday 2011-02-01 17:32:48 +0100, Michael Niedermayer encoded:
> > On Sun, Jan 30, 2011 at 07:15:29PM +0100, Stefano Sabatini wrote:
> [...]
> > > - if(vfilters) {
> > > + if (vfilters) {
> > > AVFilterInOut *outputs = av_malloc(sizeof(AVFilterInOut));
> > > AVFilterInOut *inputs = av_malloc(sizeof(AVFilterInOut));
> > >
> >
> > I dont want to nitpick but this has nothing to do with factorizing the code
> >
> > Also vgraph was a local variable before and can stay one, it doesnt need to be
> > moved to VideoState
> > AVFilterGraph *graph = avfilter_graph_alloc();
> > can stay outside configure_video_filters(graph)
>
> Fixed&updated.
> --
> FFmpeg = Fucking and Fantastic Martial Plastic Elected Geek
> ffplay.c | 51 ++++++++++++++++++++++++++++++++-------------------
> 1 file changed, 32 insertions(+), 19 deletions(-)
> 14f8a04cec95f5d7e01c5986429fadc859fddeea 0001-Implement-ffplay.c-configure_video_filters.patch
> From f1ddd2c6686a908ef78c8e82b165e1f6167c1814 Mon Sep 17 00:00:00 2001
> From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
> Date: Sun, 30 Jan 2011 19:09:40 +0100
> Subject: [PATCH] Implement ffplay.c:configure_video_filters().
>
> Factorize code from ffplay.c:video_thread() and put it in the new
> function configure_video_filters().
> ---
> ffplay.c | 51 ++++++++++++++++++++++++++++++++-------------------
> 1 files changed, 32 insertions(+), 19 deletions(-)
>
> diff --git a/ffplay.c b/ffplay.c
> index 1df3824..1fb7502 100644
> --- a/ffplay.c
> +++ b/ffplay.c
> @@ -1782,30 +1782,20 @@ static AVFilter input_filter =
> { .name = NULL }},
> };
>
> -#endif /* CONFIG_AVFILTER */
> -
> -static int video_thread(void *arg)
> +static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const char *vfilters)
> {
> - VideoState *is = arg;
> - AVFrame *frame= avcodec_alloc_frame();
> - int64_t pts_int;
> - double pts;
> - int ret;
> -
> -#if CONFIG_AVFILTER
> - int64_t pos;
> char sws_flags_str[128];
> + int ret;
> FFSinkContext ffsink_ctx = { .pix_fmt = PIX_FMT_YUV420P };
> AVFilterContext *filt_src = NULL, *filt_out = NULL;
> - AVFilterGraph *graph = avfilter_graph_alloc();
> snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%d", sws_flags);
> graph->scale_sws_opts = av_strdup(sws_flags_str);
>
> - if (avfilter_graph_create_filter(&filt_src, &input_filter, "src",
> - NULL, is, graph) < 0)
> + if ((ret = avfilter_graph_create_filter(&filt_src, &input_filter, "src",
> + NULL, is, graph)) < 0)
> goto the_end;
> - if (avfilter_graph_create_filter(&filt_out, &ffsink, "out",
> - NULL, &ffsink_ctx, graph) < 0)
> + if ((ret = avfilter_graph_create_filter(&filt_out, &ffsink, "out",
> + NULL, &ffsink_ctx, graph)) < 0)
> goto the_end;
>
> if(vfilters) {
> @@ -1822,17 +1812,40 @@ static int video_thread(void *arg)
> inputs->pad_idx = 0;
> inputs->next = NULL;
>
> - if (avfilter_graph_parse(graph, vfilters, inputs, outputs, NULL) < 0)
> + if ((ret = avfilter_graph_parse(graph, vfilters, inputs, outputs, NULL)) < 0)
> goto the_end;
> av_freep(&vfilters);
> } else {
> - if(avfilter_link(filt_src, 0, filt_out, 0) < 0) goto the_end;
> + if ((ret = avfilter_link(filt_src, 0, filt_out, 0)) < 0)
> + goto the_end;
> }
>
> - if (avfilter_graph_config(graph, NULL) < 0)
> + if ((ret = avfilter_graph_config(graph, NULL)) < 0)
> goto the_end;
>
> is->out_video_filter = filt_out;
> +the_end:
> + return ret;
LGTM but
you really should replace the gotos by returns at some point
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110201/881c0065/attachment.pgp>
More information about the ffmpeg-devel
mailing list