summaryrefslogtreecommitdiffstats
path: root/ext/pango/gsttextoverlay.h
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2005-11-30 13:20:57 +0000
committerTim-Philipp Müller <tim@centricular.net>2005-11-30 13:20:57 +0000
commitb1d87b1ffb2ec1f3ffd918cc8023de0011f0220f (patch)
tree4723094170d85b79211f43199fe90f48aff87c1e /ext/pango/gsttextoverlay.h
parent921168120801c7826f6af386f767047a36cf6adf (diff)
Port pango-based textoverlay, timeoverlay and textrender to 0.9 and add background shading and text wrapping modes. M...
Original commit message from CVS: * configure.ac: * ext/Makefile.am: * ext/pango/Makefile.am: * ext/pango/gstclockoverlay.c: (gst_clock_overlay_base_init), (gst_clock_overlay_render_time), (gst_clock_overlay_get_text), (gst_clock_overlay_class_init), (gst_clock_overlay_init): * ext/pango/gstclockoverlay.h: * ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init), (gst_text_overlay_get_text), (gst_text_overlay_class_init), (gst_text_overlay_finalize), (gst_text_overlay_init), (gst_text_overlay_update_wrap_mode), (gst_text_overlay_setcaps), (gst_text_overlay_text_pad_linked), (gst_text_overlay_text_pad_unlinked), (gst_text_overlay_set_property), (gst_text_overlay_getcaps), (gst_text_overlay_shade_y), (gst_text_overlay_blit_yuv420), (gst_text_overlay_resize_bitmap), (gst_text_overlay_render_text), (gst_text_overlay_push_frame), (gst_text_overlay_pop_video), (gst_text_overlay_pop_text), (gst_text_overlay_collected), (gst_text_overlay_change_state), (plugin_init): * ext/pango/gsttextoverlay.h: * ext/pango/gsttimeoverlay.c: (gst_time_overlay_base_init), (gst_time_overlay_render_time), (gst_time_overlay_get_text), (gst_time_overlay_class_init), (gst_time_overlay_init): * ext/pango/gsttimeoverlay.h: Port pango-based textoverlay, timeoverlay and textrender to 0.9 and add background shading and text wrapping modes. Make timoverlay derive from textoverlay. Also add new clockoverlay element.
Diffstat (limited to 'ext/pango/gsttextoverlay.h')
-rw-r--r--ext/pango/gsttextoverlay.h100
1 files changed, 63 insertions, 37 deletions
diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h
index 669f88d4..65a5b892 100644
--- a/ext/pango/gsttextoverlay.h
+++ b/ext/pango/gsttextoverlay.h
@@ -1,29 +1,30 @@
-/* -*- Mode: C; c-file-style: "stroustrup" -*- */
-#ifndef __GST_TEXTOVERLAY_H__
-#define __GST_TEXTOVERLAY_H__
+#ifndef __GST_TEXT_OVERLAY_H__
+#define __GST_TEXT_OVERLAY_H__
#include <gst/gst.h>
+#include <gst/base/gstcollectpads.h>
#include <pango/pangoft2.h>
G_BEGIN_DECLS
-#define GST_TYPE_TEXTOVERLAY (gst_textoverlay_get_type())
-#define GST_TEXTOVERLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
- GST_TYPE_TEXTOVERLAY, GstTextOverlay))
-#define GST_TEXTOVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\
- GST_TYPE_ULAW, GstTextOverlay))
-#define GST_TEXTOVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
- GST_TYPE_TEXTOVERLAY, GstTextOverlayClass))
-#define GST_IS_TEXTOVERLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
- GST_TYPE_TEXTOVERLAY))
-#define GST_IS_TEXTOVERLAY_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),\
- GST_TYPE_TEXTOVERLAY))
+#define GST_TYPE_TEXT_OVERLAY (gst_text_overlay_get_type())
+#define GST_TEXT_OVERLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
+ GST_TYPE_TEXT_OVERLAY, GstTextOverlay))
+#define GST_TEXT_OVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),\
+ GST_TYPE_TEXT_OVERLAY,GstTextOverlayClass))
+#define GST_TEXT_OVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
+ GST_TYPE_TEXT_OVERLAY, GstTextOverlayClass))
+#define GST_IS_TEXT_OVERLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
+ GST_TYPE_TEXT_OVERLAY))
+#define GST_IS_TEXT_OVERLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\
+ GST_TYPE_TEXT_OVERLAY))
typedef struct _GstTextOverlay GstTextOverlay;
typedef struct _GstTextOverlayClass GstTextOverlayClass;
-typedef enum _GstTextOverlayVAlign GstTextOverlayVAlign;
-typedef enum _GstTextOverlayHAlign GstTextOverlayHAlign;
+typedef enum _GstTextOverlayVAlign GstTextOverlayVAlign;
+typedef enum _GstTextOverlayHAlign GstTextOverlayHAlign;
+typedef enum _GstTextOverlayWrapMode GstTextOverlayWrapMode;
enum _GstTextOverlayVAlign {
GST_TEXT_OVERLAY_VALIGN_BASELINE,
@@ -37,37 +38,62 @@ enum _GstTextOverlayHAlign {
GST_TEXT_OVERLAY_HALIGN_RIGHT
};
+enum _GstTextOverlayWrapMode {
+ GST_TEXT_OVERLAY_WRAP_MODE_NONE = -1,
+ GST_TEXT_OVERLAY_WRAP_MODE_WORD = PANGO_WRAP_WORD,
+ GST_TEXT_OVERLAY_WRAP_MODE_CHAR = PANGO_WRAP_CHAR,
+ GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR = PANGO_WRAP_WORD_CHAR
+};
+
struct _GstTextOverlay {
- GstElement element;
-
- GstPad *video_sinkpad;
- GstPad *text_sinkpad;
- GstPad *srcpad;
- gint width;
- gint height;
- PangoLayout *layout;
- FT_Bitmap bitmap;
- gint bitmap_buffer_size;
- gint baseline_y;
- GstTextOverlayVAlign valign;
- GstTextOverlayHAlign halign;
- gint x0;
- gint y0;
- GstData *current_data;
- GstData *next_data;
- gchar *default_text;
- gboolean need_render;
+ GstElement element;
+
+ GstPad *video_sinkpad;
+ GstPad *text_sinkpad;
+ GstPad *srcpad;
+
+ GstCollectPads *collect;
+ GstCollectData *video_collect_data;
+ GstCollectData *text_collect_data;
+
+ gint width;
+ gint height;
+ gint fps_n;
+ gint fps_d;
+
+ GstTextOverlayVAlign valign;
+ GstTextOverlayHAlign halign;
+ GstTextOverlayWrapMode wrap_mode;
+
+ gint xpad;
+ gint ypad;
+ gint deltax;
+ gint deltay;
+ gchar *default_text;
+ gboolean want_shading;
+
+ PangoLayout *layout;
+ FT_Bitmap bitmap;
+ gint bitmap_buffer_size;
+ gint baseline_y;
+
+ gboolean need_render;
+
+ gint shading_value; /* for timeoverlay subclass */
};
struct _GstTextOverlayClass {
GstElementClass parent_class;
PangoContext *pango_context;
+
+ gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
+
};
-GType gst_textoverlay_get_type(void) G_GNUC_CONST;
+GType gst_text_overlay_get_type(void) G_GNUC_CONST;
G_END_DECLS
-#endif /* __GST_TEXTOVERLAY_H */
+#endif /* __GST_TEXT_OVERLAY_H */