summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-05 16:44:09 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-11-05 17:07:04 +0100
commit8feed39593753646bfffcc426d7edb0f9d1997a0 (patch)
tree6ce5034c398e3c6fca25788b9b1d56f5cf094257
parent06a79e9263d0b0062625374123b479032cd1da15 (diff)
assrender: Keep track of the subtitle segments
-rw-r--r--ext/assrender/gstassrender.c26
-rw-r--r--ext/assrender/gstassrender.h1
2 files changed, 25 insertions, 2 deletions
diff --git a/ext/assrender/gstassrender.c b/ext/assrender/gstassrender.c
index 97d86d5a5..89aa1b672 100644
--- a/ext/assrender/gstassrender.c
+++ b/ext/assrender/gstassrender.c
@@ -764,8 +764,30 @@ gst_assrender_event_text (GstPad * pad, GstEvent * event)
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_NEWSEGMENT:
{
- gst_event_unref (event);
- ret = TRUE;
+ GstFormat format;
+ gdouble rate;
+ gint64 start, stop, time;
+ gboolean update;
+
+ GST_DEBUG_OBJECT (render, "received new segment");
+
+ gst_event_parse_new_segment (event, &update, &rate, &format, &start,
+ &stop, &time);
+
+ if (format == GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (render, "SUBTITLE SEGMENT now: %" GST_SEGMENT_FORMAT,
+ &render->subtitle_segment);
+
+ gst_segment_set_newsegment (&render->subtitle_segment, update, rate,
+ format, start, stop, time);
+ ret = TRUE;
+ gst_event_unref (event);
+ } else {
+ GST_ELEMENT_WARNING (render, STREAM, MUX, (NULL),
+ ("received non-TIME newsegment event on subtitle input"));
+ ret = FALSE;
+ gst_event_unref (event);
+ }
break;
}
case GST_EVENT_FLUSH_STOP:
diff --git a/ext/assrender/gstassrender.h b/ext/assrender/gstassrender.h
index 0a91f4c75..1c46e6493 100644
--- a/ext/assrender/gstassrender.h
+++ b/ext/assrender/gstassrender.h
@@ -56,6 +56,7 @@ struct _Gstassrender
GCond *subtitle_cond;
GstBuffer *subtitle_pending;
gboolean subtitle_flushing;
+ GstSegment subtitle_segment;
ASS_Library *ass_library;
ASS_Renderer *ass_renderer;