From db81a73dbadd0e82e66929dd5df57243c6decb90 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Tue, 21 Jul 2015 14:12:41 -0400 Subject: [PATCH] basetextoverlay: Reorder and cleanup class attribute Also add a minimum amount of comment so we can understand what is doing what. https://bugzilla.gnome.org/show_bug.cgi?id=751157 --- ext/pango/gstbasetextoverlay.c | 2 +- ext/pango/gstbasetextoverlay.h | 67 +++++++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c index f0d8cd2..cd7b2d3 100644 --- a/ext/pango/gstbasetextoverlay.c +++ b/ext/pango/gstbasetextoverlay.c @@ -887,7 +887,6 @@ gst_base_text_overlay_setcaps (GstBaseTextOverlay * overlay, GstCaps * caps) overlay->info = info; overlay->format = GST_VIDEO_INFO_FORMAT (&info); - overlay->stream_width = GST_VIDEO_INFO_WIDTH (&info); overlay->stream_height = GST_VIDEO_INFO_HEIGHT (&info); @@ -1510,6 +1509,7 @@ gst_base_text_overlay_set_composition (GstBaseTextOverlay * overlay) if (overlay->composition) gst_video_overlay_composition_unref (overlay->composition); + overlay->composition = gst_video_overlay_composition_new (rectangle); gst_video_overlay_rectangle_unref (rectangle); diff --git a/ext/pango/gstbasetextoverlay.h b/ext/pango/gstbasetextoverlay.h index 1d643b3..ef06394 100644 --- a/ext/pango/gstbasetextoverlay.h +++ b/ext/pango/gstbasetextoverlay.h @@ -128,11 +128,11 @@ struct _GstBaseTextOverlay { GstSegment segment; GstSegment text_segment; GstBuffer *text_buffer; - gboolean text_linked; - gboolean video_flushing; - gboolean video_eos; - gboolean text_flushing; - gboolean text_eos; + gboolean text_linked; + gboolean video_flushing; + gboolean video_eos; + gboolean text_flushing; + gboolean text_eos; GMutex lock; GCond cond; /* to signal removal of a queued text @@ -140,16 +140,13 @@ struct _GstBaseTextOverlay { * a text segment update, or a change * in status (e.g. shutdown, flushing) */ + /* stream metrics */ GstVideoInfo info; GstVideoFormat format; - gint width; - gint height; - - GstBaseTextOverlayVAlign valign; - GstBaseTextOverlayHAlign halign; - GstBaseTextOverlayWrapMode wrap_mode; - GstBaseTextOverlayLineAlign line_align; + gint stream_width; + gint stream_height; + /* properties */ gint xpad; gint ypad; gint deltax; @@ -161,33 +158,43 @@ struct _GstBaseTextOverlay { gboolean silent; gboolean wait_text; guint color, outline_color; - PangoLayout *layout; - gdouble shadow_offset; - gdouble outline_offset; - GstBuffer *text_image; - gint image_width; - gint image_height; - gint baseline_y; - - gint stream_width; - gint stream_height; - gint window_width; - gint window_height; - gboolean auto_adjust_size; - gboolean need_render; - gboolean draw_shadow; gboolean draw_outline; - gint shading_value; /* for timeoverlay subclass */ + gboolean use_vertical_render; + GstBaseTextOverlayVAlign valign; + GstBaseTextOverlayHAlign halign; + GstBaseTextOverlayWrapMode wrap_mode; + GstBaseTextOverlayLineAlign line_align; + /* text pad format */ gboolean have_pango_markup; - gboolean use_vertical_render; - gboolean attach_compo_to_buffer; + /* rendering state */ + gboolean need_render; + GstBuffer *text_image; + + /* rendering canvas dimension, this is adjusted to compensate the + * downstream reported window size. */ + gint width; + gint height; + + /* dimension of text_image, the physical dimension */ + gint image_width; + gint image_height; + + /* window dimension, reported in the composition meta params. This is set + * to stream_width, stream_height if missing */ + gint window_width; + gint window_height; + + gdouble shadow_offset; + gdouble outline_offset; + gint baseline_y; + gboolean attach_compo_to_buffer; GstVideoOverlayComposition *composition; GstVideoOverlayComposition *upstream_composition; }; -- 2.7.4