upload tizen1.0 source
[framework/multimedia/gst-plugins-good0.10.git] / ext / cairo / gsttextoverlay.h
1
2 #ifndef __GST_CAIRO_TEXT_OVERLAY_H__
3 #define __GST_CAIRO_TEXT_OVERLAY_H__
4
5 #include <gst/gst.h>
6 #include <gst/base/gstcollectpads.h>
7
8 G_BEGIN_DECLS
9
10 #define GST_TYPE_CAIRO_TEXT_OVERLAY           (gst_text_overlay_get_type())
11 #define GST_CAIRO_TEXT_OVERLAY(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj),\
12                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlay))
13 #define GST_CAIRO_TEXT_OVERLAY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass),\
14                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlayClass))
15 #define GST_CAIRO_TEXT_OVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
16                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlayClass))
17 #define GST_IS_CAIRO_TEXT_OVERLAY(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
18                                         GST_TYPE_CAIRO_TEXT_OVERLAY))
19 #define GST_IS_CAIRO_TEXT_OVERLAY_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),\
20                                         GST_TYPE_CAIRO_TEXT_OVERLAY))
21
22 typedef struct _GstCairoTextOverlay      GstCairoTextOverlay;
23 typedef struct _GstCairoTextOverlayClass GstCairoTextOverlayClass;
24
25 typedef enum _GstCairoTextOverlayVAlign GstCairoTextOverlayVAlign;
26 typedef enum _GstCairoTextOverlayHAlign GstCairoTextOverlayHAlign;
27
28 enum _GstCairoTextOverlayVAlign {
29     GST_CAIRO_TEXT_OVERLAY_VALIGN_BASELINE,
30     GST_CAIRO_TEXT_OVERLAY_VALIGN_BOTTOM,
31     GST_CAIRO_TEXT_OVERLAY_VALIGN_TOP
32 };
33
34 enum _GstCairoTextOverlayHAlign {
35     GST_CAIRO_TEXT_OVERLAY_HALIGN_LEFT,
36     GST_CAIRO_TEXT_OVERLAY_HALIGN_CENTER,
37     GST_CAIRO_TEXT_OVERLAY_HALIGN_RIGHT
38 };
39
40
41 struct _GstCairoTextOverlay {
42     GstElement            element;
43
44     GstPad               *video_sinkpad;
45     GstPad               *text_sinkpad;
46     GstPad               *srcpad;
47
48     GstCollectPads       *collect;
49     GstCollectData       *video_collect_data;
50     GstCollectData       *text_collect_data;
51
52     gint                  width;
53     gint                  height;
54     gint                  fps_n;
55     gint                  fps_d;
56
57     GstCairoTextOverlayVAlign  valign;
58     GstCairoTextOverlayHAlign  halign;
59     gint                  xpad;
60     gint                  ypad;
61     gint                  deltax;
62     gint                  deltay;
63     gchar                *default_text;
64     gboolean              want_shading;
65
66     guchar               *text_fill_image;
67     guchar               *text_outline_image;
68     gint                  font_height;
69     gint                  text_x0, text_x1; /* start/end x position of text */
70     gint                  text_dy;
71
72     gboolean              need_render;
73
74     gchar                *font;
75     gint                  slant;
76     gint                  weight;
77     gdouble               scale;
78 };
79
80 struct _GstCairoTextOverlayClass {
81   GstElementClass parent_class;
82 };
83
84 GType gst_text_overlay_get_type (void);
85
86 G_END_DECLS
87
88 #endif /* __GST_CAIRO_TEXT_OVERLAY_H */