Tizen 2.0 Release
[framework/multimedia/gst-plugins-good0.10.git] / gst / videomixer / blend.h
1 /* 
2  * Copyright (C) 2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #ifndef __BLEND_H__
21 #define __BLEND_H__
22
23 #include <gst/gst.h>
24
25 typedef void (*BlendFunction) (const guint8 * src, gint xpos, gint ypos, gint src_width, gint src_height, gdouble src_alpha, guint8 * dest, gint dest_width, gint dest_height);
26 typedef void (*FillCheckerFunction) (guint8 * dest, gint width, gint height);
27 typedef void (*FillColorFunction) (guint8 * dest, gint width, gint height, gint c1, gint c2, gint c3);
28
29 extern BlendFunction gst_video_mixer_blend_argb;
30 extern BlendFunction gst_video_mixer_blend_bgra;
31 #define gst_video_mixer_blend_ayuv gst_video_mixer_blend_argb
32 #define gst_video_mixer_blend_abgr gst_video_mixer_blend_argb
33 #define gst_video_mixer_blend_rgba gst_video_mixer_blend_bgra
34 extern BlendFunction gst_video_mixer_overlay_argb;
35 extern BlendFunction gst_video_mixer_overlay_bgra;
36 #define gst_video_mixer_overlay_ayuv gst_video_mixer_overlay_argb
37 #define gst_video_mixer_overlay_abgr gst_video_mixer_overlay_argb
38 #define gst_video_mixer_overlay_rgba gst_video_mixer_overlay_bgra
39 extern BlendFunction gst_video_mixer_blend_i420;
40 #define gst_video_mixer_blend_yv12 gst_video_mixer_blend_i420
41 extern BlendFunction gst_video_mixer_blend_y41b;
42 extern BlendFunction gst_video_mixer_blend_y42b;
43 extern BlendFunction gst_video_mixer_blend_y444;
44 extern BlendFunction gst_video_mixer_blend_rgb;
45 #define gst_video_mixer_blend_bgr gst_video_mixer_blend_rgb
46 extern BlendFunction gst_video_mixer_blend_rgbx;
47 #define gst_video_mixer_blend_bgrx gst_video_mixer_blend_rgbx
48 #define gst_video_mixer_blend_xrgb gst_video_mixer_blend_rgbx
49 #define gst_video_mixer_blend_xbgr gst_video_mixer_blend_rgbx
50 extern BlendFunction gst_video_mixer_blend_yuy2;
51 #define gst_video_mixer_blend_uyvy gst_video_mixer_blend_yuy2;
52 #define gst_video_mixer_blend_yvyu gst_video_mixer_blend_yuy2;
53
54 extern FillCheckerFunction gst_video_mixer_fill_checker_argb;
55 #define gst_video_mixer_fill_checker_abgr gst_video_mixer_fill_checker_argb
56 extern FillCheckerFunction gst_video_mixer_fill_checker_bgra;
57 #define gst_video_mixer_fill_checker_rgba gst_video_mixer_fill_checker_bgra
58 extern FillCheckerFunction gst_video_mixer_fill_checker_ayuv;
59 extern FillCheckerFunction gst_video_mixer_fill_checker_i420;
60 #define gst_video_mixer_fill_checker_yv12 gst_video_mixer_fill_checker_i420
61 extern FillCheckerFunction gst_video_mixer_fill_checker_y41b;
62 extern FillCheckerFunction gst_video_mixer_fill_checker_y42b;
63 extern FillCheckerFunction gst_video_mixer_fill_checker_y444;
64 extern FillCheckerFunction gst_video_mixer_fill_checker_rgb;
65 #define gst_video_mixer_fill_checker_bgr gst_video_mixer_fill_checker_rgb
66 extern FillCheckerFunction gst_video_mixer_fill_checker_rgbx;
67 #define gst_video_mixer_fill_checker_bgrx gst_video_mixer_fill_checker_rgbx
68 #define gst_video_mixer_fill_checker_xrgb gst_video_mixer_fill_checker_rgbx
69 #define gst_video_mixer_fill_checker_xbgr gst_video_mixer_fill_checker_rgbx
70 extern FillCheckerFunction gst_video_mixer_fill_checker_yuy2;
71 #define gst_video_mixer_fill_checker_yvyu gst_video_mixer_fill_checker_yuy2;
72 extern FillCheckerFunction gst_video_mixer_fill_checker_uyvy;
73
74 extern FillColorFunction gst_video_mixer_fill_color_argb;
75 extern FillColorFunction gst_video_mixer_fill_color_abgr;
76 extern FillColorFunction gst_video_mixer_fill_color_bgra;
77 extern FillColorFunction gst_video_mixer_fill_color_rgba;
78 extern FillColorFunction gst_video_mixer_fill_color_ayuv;
79 extern FillColorFunction gst_video_mixer_fill_color_i420;
80 extern FillColorFunction gst_video_mixer_fill_color_yv12;
81 extern FillColorFunction gst_video_mixer_fill_color_y41b;
82 extern FillColorFunction gst_video_mixer_fill_color_y42b;
83 extern FillColorFunction gst_video_mixer_fill_color_y444;
84 extern FillColorFunction gst_video_mixer_fill_color_rgb;
85 extern FillColorFunction gst_video_mixer_fill_color_bgr;
86 extern FillColorFunction gst_video_mixer_fill_color_xrgb;
87 extern FillColorFunction gst_video_mixer_fill_color_xbgr;
88 extern FillColorFunction gst_video_mixer_fill_color_rgbx;
89 extern FillColorFunction gst_video_mixer_fill_color_bgrx;
90 extern FillColorFunction gst_video_mixer_fill_color_yuy2;
91 extern FillColorFunction gst_video_mixer_fill_color_yvyu;
92 extern FillColorFunction gst_video_mixer_fill_color_uyvy;
93
94 void gst_video_mixer_init_blend (void);
95
96 #endif /* __BLEND_H__ */