[FFmpeg-devel] Fw: [PATCH] Refactor two near-identical clauses.

Shlomi Fish shlomif at shlomifish.org
Sat Jun 16 19:30:10 EEST 2018


On Tue, 12 Jun 2018 12:53:20 +0300
Shlomi Fish <shlomif at shlomifish.org> wrote:

> This message did not arrive to the list after three submissions.
> 

hi all!

Ping! Can this patch please be reviewed?

> Begin forwarded message:
> 
> Date: Tue, 12 Jun 2018 12:42:52 +0300
> From: Shlomi Fish <shlomif at shlomifish.org>
> To: ffmpeg-devel at ffmpeg.org
> Cc: Shlomi Fish <shlomif at shlomifish.org>
> Subject: [PATCH] Refactor two near-identical clauses.
> 
> 
> Placed under the Expat licence . All tests pass.
> ---
>  libavfilter/vf_weave.c | 33 ++++++++++++++-------------------
>  1 file changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/libavfilter/vf_weave.c b/libavfilter/vf_weave.c
> index 037f5d1cf2..be371201e1 100644
> --- a/libavfilter/vf_weave.c
> +++ b/libavfilter/vf_weave.c
> @@ -23,6 +23,7 @@
>  #include "libavutil/pixdesc.h"
>  #include "avfilter.h"
>  #include "internal.h"
> +#include <stdbool.h>
>  
>  typedef struct WeaveContext {
>      const AVClass *class;
> @@ -84,6 +85,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
>      AVFilterLink *outlink = ctx->outputs[0];
>      AVFrame *out;
>      int i;
> +    bool weave;
> +    int field1, field2;
>  
>      if (!s->prev) {
>          s->prev = in;
> @@ -98,26 +101,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame
> *in) }
>      av_frame_copy_props(out, in);
>  
> +    weave = (s->double_weave && !(inlink->frame_count_out & 1));
> +    field1 = s->first_field * weave;
> +    field2 = s->first_field * !weave;
>      for (i = 0; i < s->nb_planes; i++) {
> -        if (s->double_weave && !(inlink->frame_count_out & 1)) {
> -            av_image_copy_plane(out->data[i] + out->linesize[i] *
> s->first_field,
> -                                out->linesize[i] * 2,
> -                                in->data[i], in->linesize[i],
> -                                s->linesize[i], s->planeheight[i]);
> -            av_image_copy_plane(out->data[i] + out->linesize[i]
> * !s->first_field,
> -                                out->linesize[i] * 2,
> -                                s->prev->data[i], s->prev->linesize[i],
> -                                s->linesize[i], s->planeheight[i]);
> -        } else {
> -            av_image_copy_plane(out->data[i] + out->linesize[i]
> * !s->first_field,
> -                                out->linesize[i] * 2,
> -                                in->data[i], in->linesize[i],
> -                                s->linesize[i], s->planeheight[i]);
> -            av_image_copy_plane(out->data[i] + out->linesize[i] *
> s->first_field,
> -                                out->linesize[i] * 2,
> -                                s->prev->data[i], s->prev->linesize[i],
> -                                s->linesize[i], s->planeheight[i]);
> -        }
> +        av_image_copy_plane(out->data[i] + out->linesize[i] * field1,
> +                            out->linesize[i] * 2,
> +                            in->data[i], in->linesize[i],
> +                            s->linesize[i], s->planeheight[i]);
> +        av_image_copy_plane(out->data[i] + out->linesize[i] * field2,
> +                            out->linesize[i] * 2,
> +                            s->prev->data[i], s->prev->linesize[i],
> +                            s->linesize[i], s->planeheight[i]);
>      }
>  
>      out->pts = s->double_weave ? s->prev->pts : in->pts / 2;



-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
https://github.com/shlomif/PySolFC - open source Solitaire games

Larry Wall has more dollars in the bank than in his Perl code.
    — http://www.shlomifish.org/humour/bits/facts/Larry-Wall/

Please reply to list if it's a mailing list post - http://shlom.in/reply .


More information about the ffmpeg-devel mailing list