1 /*
2  *  transformtype.h
3  *
4  *  Copyright (C) Georg Martius - July 2011
5  *   georg dot martius at web dot de
6  *
7  *  This file is part of vid.stab video stabilization library
8  *
9  *  vid.stab is free software; you can redistribute it and/or modify
10  *  it under the terms of the GNU General Public License,
11  *  as published by the Free Software Foundation; either version 2, or
12  *  (at your option) any later version.
13  *
14  *  vid.stab is distributed in the hope that it will be useful,
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *  GNU General Public License for more details.
18  *
19  *  You should have received a copy of the GNU General Public License
20  *  along with GNU Make; see the file COPYING.  If not, write to
21  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  */
24 #ifndef __BOXBLUR_H
25 #define __BOXBLUR_H
26 
27 #include "frameinfo.h"
28 
29 /** BoxBlurColor     - blur also color channels,
30     BoxBlurKeepColor - copy original color channels
31     BoxBlurNoColor   - do not touch color channels in dest
32 */
33 typedef enum _BoxBlurColorMode { BoxBlurColor, BoxBlurKeepColor, BoxBlurNoColor} BoxBlurColorMode ;
34 
35 /** performs a boxblur operation on src and stores results in dest.
36  * It uses an accumulator method and separate horizontal and vertical runs
37  * @param buffer may be given for intermediate results.
38  *            If 0 then it is locally malloced
39  * @param size of bluring kernel, (min 3 and it is made odd)
40  * @param onlyLumincance if true color planes stay untouched
41  */
42 void boxblurPlanar(VSFrame* dest, const VSFrame* src,
43     VSFrame* buffer, const VSFrameInfo* fi,
44     unsigned int size, BoxBlurColorMode colormode);
45 
46 #endif
47