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 depth; 41 int planewidth[4]; 42 int planeheight[4]; 43 float *buffer; 44 float boundaryscale; 45 float boundaryscaleV; 46 float postscale; 47 float postscaleV; 48 float nu; 49 float nuV; 50 int nb_planes; 51 void (*horiz_slice)(float *buffer, int width, int height, int steps, float nu, float bscale); 52 } GBlurContext; 53 void ff_gblur_init(GBlurContext *s); 54 void ff_gblur_init_x86(GBlurContext *s); 55 #endif 56