GST_DEBUG_FUNCPTR (gst_ssa_parse_src_event));
gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad);
gst_pad_use_fixed_caps (parse->srcpad);
- gst_pad_set_caps (parse->srcpad,
- gst_static_pad_template_get_caps (&src_templ));
parse->ini = NULL;
parse->framed = FALSE;
GstFlowReturn ret = GST_FLOW_OK;
GstCaps *caps = NULL;
gchar *line, *subtitle;
+ gboolean need_tags = FALSE;
if (self->first_buffer) {
GstMapInfo map;
return GST_FLOW_EOS;
}
gst_caps_unref (caps);
+ need_tags = TRUE;
+ }
+
+ /* Push newsegment if needed */
+ if (self->need_segment) {
+ GST_LOG_OBJECT (self, "pushing newsegment event with %" GST_SEGMENT_FORMAT,
+ &self->segment);
+
+ gst_pad_push_event (self->srcpad, gst_event_new_segment (&self->segment));
+ self->need_segment = FALSE;
+ }
+ if (need_tags) {
/* push tags */
if (self->subtitle_codec != NULL) {
GstTagList *tags;
self = GST_SUBPARSE (parent);
- /* Push newsegment if needed */
- if (self->need_segment) {
- GST_LOG_OBJECT (self, "pushing newsegment event with %" GST_SEGMENT_FORMAT,
- &self->segment);
-
- gst_pad_push_event (self->srcpad, gst_event_new_segment (&self->segment));
- self->need_segment = FALSE;
- }
-
ret = handle_buffer (self, buf);
return ret;