diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-11-06 09:01:34 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-11-06 12:11:20 +0100 |
commit | d941a9f6a6fc9b919edfe8f00f988f0baeae1bfe (patch) | |
tree | 4629b24fa57733b2d5ce2d6498fdbf577a6cbb7f | |
parent | 8692174b5040505554869e1ff3e97f5fdcd5925b (diff) |
textoverlay: Put the video segment into the instance struct instead of allocating it separately
-rw-r--r-- | ext/pango/gsttextoverlay.c | 31 | ||||
-rw-r--r-- | ext/pango/gsttextoverlay.h | 2 |
2 files changed, 11 insertions, 22 deletions
diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index e2bb4ea90..a7ac571ab 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -489,11 +489,6 @@ gst_text_overlay_finalize (GObject * object) overlay->layout = NULL; } - if (overlay->segment) { - gst_segment_free (overlay->segment); - overlay->segment = NULL; - } - if (overlay->text_buffer) { gst_buffer_unref (overlay->text_buffer); overlay->text_buffer = NULL; @@ -592,13 +587,7 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass) overlay->text_buffer = NULL; overlay->text_linked = FALSE; overlay->cond = g_cond_new (); - overlay->segment = gst_segment_new (); - if (overlay->segment) { - gst_segment_init (overlay->segment, GST_FORMAT_TIME); - } else { - GST_WARNING_OBJECT (overlay, "segment creation failed"); - g_assert_not_reached (); - } + gst_segment_init (&overlay->segment, GST_FORMAT_TIME); } static void @@ -1807,9 +1796,9 @@ gst_text_overlay_video_event (GstPad * pad, GstEvent * event) if (format == GST_FORMAT_TIME) { GST_DEBUG_OBJECT (overlay, "VIDEO SEGMENT now: %" GST_SEGMENT_FORMAT, - overlay->segment); + &overlay->segment); - gst_segment_set_newsegment (overlay->segment, update, rate, format, + gst_segment_set_newsegment (&overlay->segment, update, rate, format, start, stop, time); } else { GST_ELEMENT_WARNING (overlay, STREAM, MUX, (NULL), @@ -1909,7 +1898,7 @@ gst_text_overlay_text_chain (GstPad * pad, GstBuffer * buffer) } GST_LOG_OBJECT (overlay, "%" GST_SEGMENT_FORMAT " BUFFER: ts=%" - GST_TIME_FORMAT ", end=%" GST_TIME_FORMAT, overlay->segment, + GST_TIME_FORMAT ", end=%" GST_TIME_FORMAT, &overlay->segment, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer))); @@ -1922,7 +1911,7 @@ gst_text_overlay_text_chain (GstPad * pad, GstBuffer * buffer) else stop = GST_CLOCK_TIME_NONE; - in_seg = gst_segment_clip (overlay->segment, GST_FORMAT_TIME, + in_seg = gst_segment_clip (&overlay->segment, GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buffer), stop, &clip_start, &clip_stop); } else { in_seg = TRUE; @@ -1988,15 +1977,15 @@ gst_text_overlay_video_chain (GstPad * pad, GstBuffer * buffer) } GST_LOG_OBJECT (overlay, "%" GST_SEGMENT_FORMAT " BUFFER: ts=%" - GST_TIME_FORMAT ", end=%" GST_TIME_FORMAT, overlay->segment, + GST_TIME_FORMAT ", end=%" GST_TIME_FORMAT, &overlay->segment, GST_TIME_ARGS (start), GST_TIME_ARGS (stop)); /* segment_clip() will adjust start unconditionally to segment_start if * no stop time is provided, so handle this ourselves */ - if (stop == GST_CLOCK_TIME_NONE && start < overlay->segment->start) + if (stop == GST_CLOCK_TIME_NONE && start < overlay->segment.start) goto out_of_segment; - in_seg = gst_segment_clip (overlay->segment, GST_FORMAT_TIME, start, stop, + in_seg = gst_segment_clip (&overlay->segment, GST_FORMAT_TIME, start, stop, &clip_start, &clip_stop); if (!in_seg) @@ -2043,7 +2032,7 @@ wait_for_text_buf: ret = gst_pad_push (overlay->srcpad, buffer); /* Update last_stop */ - gst_segment_set_last_stop (overlay->segment, GST_FORMAT_TIME, clip_start); + gst_segment_set_last_stop (&overlay->segment, GST_FORMAT_TIME, clip_start); return ret; } @@ -2197,7 +2186,7 @@ wait_for_text_buf: g_free (text); /* Update last_stop */ - gst_segment_set_last_stop (overlay->segment, GST_FORMAT_TIME, clip_start); + gst_segment_set_last_stop (&overlay->segment, GST_FORMAT_TIME, clip_start); return ret; diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h index 232d97a2b..4590b270f 100644 --- a/ext/pango/gsttextoverlay.h +++ b/ext/pango/gsttextoverlay.h @@ -92,7 +92,7 @@ struct _GstTextOverlay { GstPad *text_sinkpad; GstPad *srcpad; - GstSegment *segment; + GstSegment segment; GstSegment text_segment; GstBuffer *text_buffer; gboolean text_linked; |