1 #ifndef __GST_TEXT_OVERLAY_H__
2 #define __GST_TEXT_OVERLAY_H__
5 #include <gst/base/gstcollectpads.h>
6 #include <pango/pangoft2.h>
10 #define GST_TYPE_TEXT_OVERLAY (gst_text_overlay_get_type())
11 #define GST_TEXT_OVERLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
12 GST_TYPE_TEXT_OVERLAY, GstTextOverlay))
13 #define GST_TEXT_OVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\
14 GST_TYPE_TEXT_OVERLAY,GstTextOverlayClass))
15 #define GST_TEXT_OVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
16 GST_TYPE_TEXT_OVERLAY, GstTextOverlayClass))
17 #define GST_IS_TEXT_OVERLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
18 GST_TYPE_TEXT_OVERLAY))
19 #define GST_IS_TEXT_OVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\
20 GST_TYPE_TEXT_OVERLAY))
22 typedef struct _GstTextOverlay GstTextOverlay;
23 typedef struct _GstTextOverlayClass GstTextOverlayClass;
25 typedef enum _GstTextOverlayVAlign GstTextOverlayVAlign;
26 typedef enum _GstTextOverlayHAlign GstTextOverlayHAlign;
27 typedef enum _GstTextOverlayWrapMode GstTextOverlayWrapMode;
29 enum _GstTextOverlayVAlign {
30 GST_TEXT_OVERLAY_VALIGN_BASELINE,
31 GST_TEXT_OVERLAY_VALIGN_BOTTOM,
32 GST_TEXT_OVERLAY_VALIGN_TOP
35 enum _GstTextOverlayHAlign {
36 GST_TEXT_OVERLAY_HALIGN_LEFT,
37 GST_TEXT_OVERLAY_HALIGN_CENTER,
38 GST_TEXT_OVERLAY_HALIGN_RIGHT
41 enum _GstTextOverlayWrapMode {
42 GST_TEXT_OVERLAY_WRAP_MODE_NONE = -1,
43 GST_TEXT_OVERLAY_WRAP_MODE_WORD = PANGO_WRAP_WORD,
44 GST_TEXT_OVERLAY_WRAP_MODE_CHAR = PANGO_WRAP_CHAR,
45 GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR = PANGO_WRAP_WORD_CHAR
49 struct _GstTextOverlay {
52 GstPad *video_sinkpad;
56 GstCollectPads *collect;
57 GstCollectData *video_collect_data;
58 GstCollectData *text_collect_data;
65 GstTextOverlayVAlign valign;
66 GstTextOverlayHAlign halign;
67 GstTextOverlayWrapMode wrap_mode;
74 gboolean want_shading;
78 gint bitmap_buffer_size;
83 gint shading_value; /* for timeoverlay subclass */
86 struct _GstTextOverlayClass {
87 GstElementClass parent_class;
89 PangoContext *pango_context;
91 gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
95 GType gst_text_overlay_get_type(void) G_GNUC_CONST;
99 #endif /* __GST_TEXT_OVERLAY_H */