1 /* 2 * Copyright (c) 2011 Pascal Getreuer 3 * Copyright (c) 2016 Paul B Mahol 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following 12 * disclaimer in the documentation and/or other materials provided 13 * with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19 * HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #ifndef AVFILTER_GBLUR_H 29 #define AVFILTER_GBLUR_H 30 #include "avfilter.h" 31 32 typedef struct GBlurContext { 33 const AVClass *class; 34 35 float sigma; 36 float sigmaV; 37 int steps; 38 int planes; 39 40 int flt; 41 int depth; 42 int planewidth[4]; 43 int planeheight[4]; 44 float *buffer; 45 float boundaryscale; 46 float boundaryscaleV; 47 float postscale; 48 float postscaleV; 49 float nu; 50 float nuV; 51 int nb_planes; 52 void (*horiz_slice)(float *buffer, int width, int height, int steps, float nu, float bscale); 53 void (*postscale_slice)(float *buffer, int length, float postscale, float min, float max); 54 } GBlurContext; 55 56 void ff_gblur_init(GBlurContext *s); 57 void ff_gblur_init_x86(GBlurContext *s); 58 #endif 59