Fifth set of 50 GPL attribution for CV-Contributors +
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / boxblur.h
1 // from ffmpeg vf_boxblur
2 #include "boxblur.inc"
3 #include "loadbalance.h"
4 #include "vframe.h"
5
6 #include <stdint.h>
7
8 class BoxBlurPackage : public LoadPackage
9 {
10 public:
11         BoxBlurPackage();
12         int u1, u2;
13 };
14
15 class BoxBlurUnit : public LoadClient
16 {
17 public:
18         BoxBlurUnit(BoxBlur*server);
19         template<class dst_t, class src_t>
20                 void blurt_package(LoadPackage *package);
21         void process_package(LoadPackage *package);
22 };
23
24 class BoxBlur : public LoadServer
25 {
26 public:
27         BoxBlur(int cpus);
28         virtual ~BoxBlur();
29         void init_packages();
30         LoadClient* new_client();
31         LoadPackage* new_package();
32         void process(VFrame *dst, VFrame *src, int uv,
33                 int radius, int power, int comp);
34         int init_box(VFrame *dst, int x, int y, int w, int h);
35         void hblur(VFrame *dst, VFrame *src, int radius, int power, int comp=-1);
36         void hblur(VFrame *dst, VFrame *src, int radius, int power, int comp,
37                 int x, int y, int w, int h);
38         void vblur(VFrame *dst, VFrame *src, int radius, int power, int comp=-1);
39         void vblur(VFrame *dst, VFrame *src, int radius, int power, int comp,
40                 int x, int y, int w, int h);
41         void blur(VFrame *dst, VFrame *src, int radius, int power, int comp=-1);
42         void blur(VFrame *dst, VFrame *src, int radius, int power, int comp,
43                 int x, int y, int w, int h);
44         int x1, y1, x2, y2;
45         const uint8_t *src_data;
46         uint8_t *dst_data;
47         int src_ustep, dst_ustep;
48         int src_vstep, dst_vstep;
49         int radius, power, uv;
50         int u1, u2, v1, v2;
51         int ulen, vlen, c0, c1;
52         int src_bpc, dst_bpc;
53 };
54