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.
2005-11-30 13:20:57 +00:00
|
|
|
#ifndef __GST_TEXT_OVERLAY_H__
|
|
|
|
#define __GST_TEXT_OVERLAY_H__
|
2003-07-17 06:29:48 +00:00
|
|
|
|
|
|
|
#include <gst/gst.h>
|
2009-08-04 10:46:57 +00:00
|
|
|
#include <gst/video/video.h>
|
2011-01-06 23:01:20 +00:00
|
|
|
#include <gst/controller/gstcontroller.h>
|
2009-08-04 09:35:10 +00:00
|
|
|
#include <pango/pangocairo.h>
|
2003-07-17 06:29:48 +00:00
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
2004-03-15 16:32:55 +00:00
|
|
|
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
#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))
|
2004-03-15 16:32:55 +00:00
|
|
|
|
|
|
|
typedef struct _GstTextOverlay GstTextOverlay;
|
2003-07-17 06:29:48 +00:00
|
|
|
typedef struct _GstTextOverlayClass GstTextOverlayClass;
|
|
|
|
|
2006-03-01 16:24:37 +00:00
|
|
|
/**
|
|
|
|
* GstTextOverlayVAlign:
|
|
|
|
* @GST_TEXT_OVERLAY_VALIGN_BASELINE: draw text on the baseline
|
|
|
|
* @GST_TEXT_OVERLAY_VALIGN_BOTTOM: draw text on the bottom
|
2011-03-16 13:38:31 +00:00
|
|
|
* @GST_TEXT_OVERLAY_VALIGN_TOP: draw text on top
|
|
|
|
* @GST_TEXT_OVERLAY_VALIGN_POS: draw text according to the #GstTextOverlay:ypos property
|
|
|
|
* @GST_TEXT_OVERLAY_VALIGN_CENTER: draw text vertically centered
|
2006-03-01 16:24:37 +00:00
|
|
|
*
|
|
|
|
* Vertical alignment of the text.
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2004-03-15 16:32:55 +00:00
|
|
|
GST_TEXT_OVERLAY_VALIGN_BASELINE,
|
|
|
|
GST_TEXT_OVERLAY_VALIGN_BOTTOM,
|
2010-07-22 15:29:57 +00:00
|
|
|
GST_TEXT_OVERLAY_VALIGN_TOP,
|
2011-01-11 17:18:34 +00:00
|
|
|
GST_TEXT_OVERLAY_VALIGN_POS,
|
|
|
|
GST_TEXT_OVERLAY_VALIGN_CENTER
|
2006-03-01 16:24:37 +00:00
|
|
|
} GstTextOverlayVAlign;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* GstTextOverlayHAlign:
|
|
|
|
* @GST_TEXT_OVERLAY_HALIGN_LEFT: align text left
|
|
|
|
* @GST_TEXT_OVERLAY_HALIGN_CENTER: align text center
|
|
|
|
* @GST_TEXT_OVERLAY_HALIGN_RIGHT: align text right
|
2011-03-16 13:38:31 +00:00
|
|
|
* @GST_TEXT_OVERLAY_HALIGN_POS: position text according to the #GstTextOverlay:xpos property
|
2006-03-01 16:24:37 +00:00
|
|
|
*
|
|
|
|
* Horizontal alignment of the text.
|
|
|
|
*/
|
2011-03-16 13:38:31 +00:00
|
|
|
/* FIXME 0.11: remove GST_TEXT_OVERLAY_HALIGN_UNUSED */
|
2006-03-01 16:24:37 +00:00
|
|
|
typedef enum {
|
2004-03-15 16:32:55 +00:00
|
|
|
GST_TEXT_OVERLAY_HALIGN_LEFT,
|
|
|
|
GST_TEXT_OVERLAY_HALIGN_CENTER,
|
2010-07-22 15:29:57 +00:00
|
|
|
GST_TEXT_OVERLAY_HALIGN_RIGHT,
|
2011-03-16 13:38:31 +00:00
|
|
|
GST_TEXT_OVERLAY_HALIGN_UNUSED,
|
2010-07-22 15:29:57 +00:00
|
|
|
GST_TEXT_OVERLAY_HALIGN_POS
|
2006-03-01 16:24:37 +00:00
|
|
|
} GstTextOverlayHAlign;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* GstTextOverlayWrapMode:
|
|
|
|
* @GST_TEXT_OVERLAY_WRAP_MODE_NONE: no wrapping
|
|
|
|
* @GST_TEXT_OVERLAY_WRAP_MODE_WORD: do word wrapping
|
|
|
|
* @GST_TEXT_OVERLAY_WRAP_MODE_CHAR: do char wrapping
|
|
|
|
* @GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR: do word and char wrapping
|
|
|
|
*
|
|
|
|
* Whether to wrap the text and if so how.
|
|
|
|
*/
|
|
|
|
typedef enum {
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
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
|
2006-03-01 16:24:37 +00:00
|
|
|
} GstTextOverlayWrapMode;
|
2003-07-17 06:29:48 +00:00
|
|
|
|
2007-08-13 15:26:54 +00:00
|
|
|
/**
|
|
|
|
* GstTextOverlayLineAlign:
|
|
|
|
* @GST_TEXT_OVERLAY_LINE_ALIGN_LEFT: lines are left-aligned
|
|
|
|
* @GST_TEXT_OVERLAY_LINE_ALIGN_CENTER: lines are center-aligned
|
|
|
|
* @GST_TEXT_OVERLAY_LINE_ALIGN_RIGHT: lines are right-aligned
|
|
|
|
*
|
|
|
|
* Alignment of text lines relative to each other
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
GST_TEXT_OVERLAY_LINE_ALIGN_LEFT = PANGO_ALIGN_LEFT,
|
|
|
|
GST_TEXT_OVERLAY_LINE_ALIGN_CENTER = PANGO_ALIGN_CENTER,
|
|
|
|
GST_TEXT_OVERLAY_LINE_ALIGN_RIGHT = PANGO_ALIGN_RIGHT
|
|
|
|
} GstTextOverlayLineAlign;
|
|
|
|
|
2006-03-01 16:24:37 +00:00
|
|
|
/**
|
|
|
|
* GstTextOverlay:
|
|
|
|
*
|
|
|
|
* Opaque textoverlay object structure
|
|
|
|
*/
|
2004-03-15 16:32:55 +00:00
|
|
|
struct _GstTextOverlay {
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
GstElement element;
|
|
|
|
|
|
|
|
GstPad *video_sinkpad;
|
|
|
|
GstPad *text_sinkpad;
|
|
|
|
GstPad *srcpad;
|
|
|
|
|
2009-11-06 08:01:34 +00:00
|
|
|
GstSegment segment;
|
ext/pango/gsttextoverlay.*: Some textoverlay fixes: for one, in the video chain function, actually wait for a text bu...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
(gst_text_overlay_text_pad_unlink), (gst_text_overlay_text_event),
(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h:
Some textoverlay fixes: for one, in the video chain function,
actually wait for a text buffer to come in if there is none at the
moment and there should be one; also, deal more gracefully with
incoming buffers that do not have a timestamp or duration; discard
text buffer when not needed any longer. Fixes #341681.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/textoverlay.c:
(notgst_check_setup_src_pad2), (notgst_check_teardown_src_pad2),
(setup_textoverlay), (buffer_is_all_black), (create_black_buffer),
(create_text_buffer), (cleanup_textoverlay), (GST_START_TEST),
(test_video_waits_for_text_send_text_newsegment_thread),
(test_video_waits_for_text_shutdown_element),
(test_render_continuity_push_video_buffers_thread),
(textoverlay_suite):
Add some unit tests for textoverlay.
2006-11-21 18:39:34 +00:00
|
|
|
GstSegment text_segment;
|
ext/pango/gsttextoverlay.c: Refactoring of textoverlay without collectpads. This now supports sparse subtitles coming...
Original commit message from CVS:
2006-02-18 Julien MOUTTE <julien@moutte.net>
* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
(gst_text_overlay_finalize), (gst_text_overlay_init),
(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
(gst_text_overlay_render_text),
(gst_text_overlay_text_pad_link),
(gst_text_overlay_text_pad_unlink),
(gst_text_overlay_text_event),
(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state): Refactoring of textoverlay
without collectpads. This now supports sparse subtitles coming
from a demuxer instead of a sub file. Seeking is still broken
though. Need to discuss with wtay some more on how to handle
seeking correctly.
* ext/pango/gsttextoverlay.h:
* gst/playback/gstplaybin.c: (setup_sinks): Support linking with
subtitles coming from the demuxer.
2006-02-18 19:10:35 +00:00
|
|
|
GstBuffer *text_buffer;
|
|
|
|
gboolean text_linked;
|
ext/pango/gsttextoverlay.*: Fix seeking both for muxed formats and subtitles files.
Original commit message from CVS:
2006-02-19 Julien MOUTTE <julien@moutte.net>
* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
(gst_text_overlay_finalize), (gst_text_overlay_init),
(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
(gst_text_overlay_render_text),
(gst_text_overlay_text_pad_link),
(gst_text_overlay_text_event), (gst_text_overlay_video_event),
(gst_text_overlay_pop_text), (gst_text_overlay_text_chain),
(gst_text_overlay_video_chain), (gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h: Fix seeking both for muxed formats
and subtitles files.
2006-02-19 11:56:28 +00:00
|
|
|
gboolean video_flushing;
|
ext/pango/gsttextoverlay.*: Add property to configure waiting for text on the textpad or not, with the default behavi...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init),
(gst_text_overlay_init), (gst_text_overlay_set_property),
(gst_text_overlay_get_property), (gst_text_overlay_src_event),
(gst_text_overlay_text_event), (gst_text_overlay_video_event),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h:
Add property to configure waiting for text on the textpad or not, with
the default behaviour being the old one (always wait for text before
rendering the video). This default behaviour is usually not the best one
because the text stream can very sparse and could require queueing a lot
of video.
Fix the flushing and EOS handing so that we don't mix up their meaning.
2008-03-24 12:03:02 +00:00
|
|
|
gboolean video_eos;
|
ext/pango/gsttextoverlay.*: Fix seeking both for muxed formats and subtitles files.
Original commit message from CVS:
2006-02-19 Julien MOUTTE <julien@moutte.net>
* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
(gst_text_overlay_finalize), (gst_text_overlay_init),
(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
(gst_text_overlay_render_text),
(gst_text_overlay_text_pad_link),
(gst_text_overlay_text_event), (gst_text_overlay_video_event),
(gst_text_overlay_pop_text), (gst_text_overlay_text_chain),
(gst_text_overlay_video_chain), (gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h: Fix seeking both for muxed formats
and subtitles files.
2006-02-19 11:56:28 +00:00
|
|
|
gboolean text_flushing;
|
ext/pango/gsttextoverlay.*: Some textoverlay fixes: for one, in the video chain function, actually wait for a text bu...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
(gst_text_overlay_text_pad_unlink), (gst_text_overlay_text_event),
(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h:
Some textoverlay fixes: for one, in the video chain function,
actually wait for a text buffer to come in if there is none at the
moment and there should be one; also, deal more gracefully with
incoming buffers that do not have a timestamp or duration; discard
text buffer when not needed any longer. Fixes #341681.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/textoverlay.c:
(notgst_check_setup_src_pad2), (notgst_check_teardown_src_pad2),
(setup_textoverlay), (buffer_is_all_black), (create_black_buffer),
(create_text_buffer), (cleanup_textoverlay), (GST_START_TEST),
(test_video_waits_for_text_send_text_newsegment_thread),
(test_video_waits_for_text_shutdown_element),
(test_render_continuity_push_video_buffers_thread),
(textoverlay_suite):
Add some unit tests for textoverlay.
2006-11-21 18:39:34 +00:00
|
|
|
gboolean text_eos;
|
|
|
|
|
|
|
|
GCond *cond; /* to signal removal of a queued text
|
|
|
|
* buffer, arrival of a text buffer,
|
|
|
|
* a text segment update, or a change
|
|
|
|
* in status (e.g. shutdown, flushing) */
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
gint width;
|
|
|
|
gint height;
|
|
|
|
gint fps_n;
|
|
|
|
gint fps_d;
|
2009-08-04 10:46:57 +00:00
|
|
|
GstVideoFormat format;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
GstTextOverlayVAlign valign;
|
|
|
|
GstTextOverlayHAlign halign;
|
|
|
|
GstTextOverlayWrapMode wrap_mode;
|
2007-08-13 15:26:54 +00:00
|
|
|
GstTextOverlayLineAlign line_align;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
gint xpad;
|
|
|
|
gint ypad;
|
|
|
|
gint deltax;
|
|
|
|
gint deltay;
|
2010-07-22 15:29:57 +00:00
|
|
|
gdouble xpos;
|
|
|
|
gdouble ypos;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
gchar *default_text;
|
|
|
|
gboolean want_shading;
|
2007-08-08 16:07:21 +00:00
|
|
|
gboolean silent;
|
ext/pango/gsttextoverlay.*: Add property to configure waiting for text on the textpad or not, with the default behavi...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init),
(gst_text_overlay_init), (gst_text_overlay_set_property),
(gst_text_overlay_get_property), (gst_text_overlay_src_event),
(gst_text_overlay_text_event), (gst_text_overlay_video_event),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h:
Add property to configure waiting for text on the textpad or not, with
the default behaviour being the old one (always wait for text before
rendering the video). This default behaviour is usually not the best one
because the text stream can very sparse and could require queueing a lot
of video.
Fix the flushing and EOS handing so that we don't mix up their meaning.
2008-03-24 12:03:02 +00:00
|
|
|
gboolean wait_text;
|
2010-07-22 15:29:57 +00:00
|
|
|
guint color;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
PangoLayout *layout;
|
2009-08-04 09:35:10 +00:00
|
|
|
gdouble shadow_offset;
|
|
|
|
gdouble outline_offset;
|
|
|
|
guchar *text_image;
|
|
|
|
gint image_width;
|
|
|
|
gint image_height;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
gint baseline_y;
|
|
|
|
|
2009-08-04 09:35:10 +00:00
|
|
|
gboolean auto_adjust_size;
|
2005-12-06 19:42:02 +00:00
|
|
|
gboolean need_render;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
gint shading_value; /* for timeoverlay subclass */
|
2006-03-07 15:08:15 +00:00
|
|
|
|
|
|
|
gboolean have_pango_markup;
|
2009-08-04 09:35:10 +00:00
|
|
|
gboolean use_vertical_render;
|
2003-07-17 06:29:48 +00:00
|
|
|
};
|
|
|
|
|
2004-03-15 16:32:55 +00:00
|
|
|
struct _GstTextOverlayClass {
|
|
|
|
GstElementClass parent_class;
|
2003-07-17 06:29:48 +00:00
|
|
|
|
2004-03-15 16:32:55 +00:00
|
|
|
PangoContext *pango_context;
|
2011-03-14 09:14:04 +00:00
|
|
|
GMutex *pango_lock;
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
|
|
|
|
gchar * (*get_text) (GstTextOverlay *overlay, GstBuffer *video_frame);
|
2003-07-17 06:29:48 +00:00
|
|
|
};
|
|
|
|
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
GType gst_text_overlay_get_type(void) G_GNUC_CONST;
|
2003-07-17 06:29:48 +00:00
|
|
|
|
|
|
|
G_END_DECLS
|
2004-03-15 16:32:55 +00:00
|
|
|
|
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.
2005-11-30 13:20:57 +00:00
|
|
|
#endif /* __GST_TEXT_OVERLAY_H */
|