gboolean detecting;
GList *detect_buffers;
guint detect_buffers_size;
+
+ /* if TRUE, a STREAM_START event needs to be pushed */
+ gboolean push_stream_start;
};
typedef struct _GstBaseParseSeek
parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
klass = GST_BASE_PARSE_GET_CLASS (parse);
+ GST_DEBUG_OBJECT (parse, "hello");
+
+ if (G_UNLIKELY (parse->priv->push_stream_start)) {
+ GST_DEBUG_OBJECT (parse, "Pushing STREAM_START");
+ gst_pad_push_event (parse->srcpad, gst_event_new_stream_start ());
+ parse->priv->push_stream_start = FALSE;
+ }
+
/* reverse playback:
* first fragment (closest to stop time) is handled normally below,
* then we pull in fragments going backwards */
if (!gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, TRUE))
goto baseparse_push;
+ parse->priv->push_stream_start = TRUE;
+
return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_base_parse_loop,
sinkpad, NULL);
/* fallback */