+2004-05-13 Benjamin Otte <in7y118@public.uni-hamburg.de>
+
+ * ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
+ signal no-more-pads
+
2004-05-13 Jan Schmidt <thaytan@mad.scientist.com>
* ext/dv/gstdvdec.c: (gst_dvdec_src_convert)
GstOggState state;
GArray *chains;
gint current_chain;
- guint flags;
+ gboolean bos;
/* ogg stuff */
ogg_sync_state sync;
GST_OGG_SET_STATE (ogg, GST_OGG_STATE_SEEK);
FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
- pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;
- );
+ pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;);
GST_DEBUG_OBJECT (ogg, "initiating seeking to offset %" G_GUINT64_FORMAT,
offset);
ogg->seek_pad = cur;
gst_event_unref (event);
GST_FLAG_UNSET (ogg, GST_OGG_FLAG_WAIT_FOR_DISCONT);
FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
- pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;
- );
+ pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;);
break;
case GST_EVENT_EOS:
if (ogg->state == GST_OGG_STATE_SETUP) {
CURRENT_CHAIN (ogg)->pads =
g_slist_prepend (CURRENT_CHAIN (ogg)->pads, cur);
}
+ ogg->bos = TRUE;
+ } else if (ogg->bos) {
+ gst_element_no_more_pads (GST_ELEMENT (ogg));
+ ogg->bos = FALSE;
}
if (cur == NULL) {
GST_ELEMENT_ERROR (ogg, STREAM, DECODE, (NULL),