[FFmpeg-devel] checkasm/vf_hflip : add test for vf_hflip SIMD

Michael Niedermayer michael at niedermayer.cc
Fri Dec 8 12:58:19 EET 2017


On Thu, Dec 07, 2017 at 09:40:41PM +0100, Martin Vignali wrote:
> Hello,
> 
> Patch in attach add a checkasm test for vf_hflip (byte and short)
> 
> Martin

>  hflip.h    |    1 +
>  vf_hflip.c |   14 ++++++++++----
>  2 files changed, 11 insertions(+), 4 deletions(-)
> cac8c66112fd43e63d2fc734a66a156ad37e3d0d  0001-avfilter-vf_hflip-move-context-func-init-in.patch
> From 16dde326c4ffd8ddf22dbf891c5fc3c093ad8a28 Mon Sep 17 00:00:00 2001
> From: Martin Vignali <martin.vignali at gmail.com>
> Date: Thu, 7 Dec 2017 21:35:42 +0100
> Subject: [PATCH 1/2] avfilter/vf_hflip : move context func init in 
>  ff_hflip_init
> 
> ---
>  libavfilter/hflip.h    |  1 +
>  libavfilter/vf_hflip.c | 14 ++++++++++----
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/libavfilter/hflip.h b/libavfilter/hflip.h
> index cbe1fb3d8c..204090dbb4 100644
> --- a/libavfilter/hflip.h
> +++ b/libavfilter/hflip.h
> @@ -33,6 +33,7 @@ typedef struct FlipContext {
>      void (*flip_line[4])(const uint8_t *src, uint8_t *dst, int w);
>  } FlipContext;
>  
> +int ff_hflip_init(FlipContext *s, int step[4], int nb_planes);
>  void ff_hflip_init_x86(FlipContext *s, int step[4], int nb_planes);
>  
>  #endif /* AVFILTER_HFLIP_H */
> diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c
> index 957ddd9900..b77afc77fc 100644
> --- a/libavfilter/vf_hflip.c
> +++ b/libavfilter/vf_hflip.c
> @@ -131,7 +131,7 @@ static int config_props(AVFilterLink *inlink)
>      const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format);
>      const int hsub = pix_desc->log2_chroma_w;
>      const int vsub = pix_desc->log2_chroma_h;
> -    int nb_planes, i;
> +    int nb_planes;
>  
>      av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc);
>      s->planewidth[0]  = s->planewidth[3]  = inlink->w;
> @@ -141,8 +141,15 @@ static int config_props(AVFilterLink *inlink)
>  
>      nb_planes = av_pix_fmt_count_planes(inlink->format);
>  
> +    return ff_hflip_init(s, s->max_step, nb_planes);
> +}
> +
> +int ff_hflip_init(FlipContext *s, int step[4], int nb_planes)
> +{
> +    int i;
> +
>      for (i = 0; i < nb_planes; i++) {
> -        switch (s->max_step[i]) {
> +        switch (step[i]) {
>          case 1: s->flip_line[i] = hflip_byte_c;  break;
>          case 2: s->flip_line[i] = hflip_short_c; break;
>          case 3: s->flip_line[i] = hflip_b24_c;   break;
> @@ -153,9 +160,8 @@ static int config_props(AVFilterLink *inlink)
>              return AVERROR_BUG;
>          }
>      }
> -
>      if (ARCH_X86)
> -        ff_hflip_init_x86(s, s->max_step, nb_planes);
> +        ff_hflip_init_x86(s, step, nb_planes);
>  
>      return 0;
>  }
> -- 
> 2.11.0 (Apple Git-81)
> 

>  checkasm/Makefile   |    1 
>  checkasm/checkasm.c |    3 ++
>  checkasm/checkasm.h |    1 
>  checkasm/vf_hflip.c |   74 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  fate/checkasm.mak   |    1 
>  5 files changed, 80 insertions(+)
> 8e11138c838a238905257fd6d1ed47be49ee1d37  0002-checkasm-vf_hflip-add-test-for-vf_hflip-byte-and-sho.patch
> From 1012af32158bc1d387afdc9fc5cacd83894b77d0 Mon Sep 17 00:00:00 2001
> From: Martin Vignali <martin.vignali at gmail.com>
> Date: Thu, 7 Dec 2017 21:38:20 +0100
> Subject: [PATCH 2/2] checkasm/vf_hflip : add test for vf_hflip byte and short 
>  simd

maybe iam missing something
but my box doesnt like your test:

TEST    checkasm-vf_hflip
Test checkasm-vf_hflip failed. Look at tests/data/fate/checkasm-vf_hflip.err for details.
make: *** [fate-checkasm-vf_hflip] Error 1
michael at sandybox:~/ffmpeg-git/ffmpeg$ cat tests/data/fate/checkasm-vf_hflip.err
checkasm: using random seed 358531722
SSSE3:
   hflip_byte_ssse3 (vf_hflip.c:63)
 - vf_hflip.hflip_byte  [FAILED]
   hflip_short_ssse3 (vf_hflip.c:63)
 - vf_hflip.hflip_short [FAILED]
checkasm: 2 of 2 tests have failed

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171208/63a992d8/attachment.sig>


More information about the ffmpeg-devel mailing list