ext/ogg/gstoggdemux.c: signal no-more-pads

Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
signal no-more-pads
This commit is contained in:
Benjamin Otte 2004-05-13 16:07:16 +00:00
parent 616d9f6d9a
commit e0eac30131
2 changed files with 12 additions and 5 deletions

View file

@ -1,3 +1,8 @@
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> 2004-05-13 Jan Schmidt <thaytan@mad.scientist.com>
* ext/dv/gstdvdec.c: (gst_dvdec_src_convert) * ext/dv/gstdvdec.c: (gst_dvdec_src_convert)

View file

@ -117,7 +117,7 @@ struct _GstOggDemux
GstOggState state; GstOggState state;
GArray *chains; GArray *chains;
gint current_chain; gint current_chain;
guint flags; gboolean bos;
/* ogg stuff */ /* ogg stuff */
ogg_sync_state sync; ogg_sync_state sync;
@ -376,8 +376,7 @@ gst_ogg_demux_src_event (GstPad * pad, GstEvent * event)
GST_OGG_SET_STATE (ogg, GST_OGG_STATE_SEEK); GST_OGG_SET_STATE (ogg, GST_OGG_STATE_SEEK);
FOR_PAD_IN_CURRENT_CHAIN (ogg, pad, 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, GST_DEBUG_OBJECT (ogg, "initiating seeking to offset %" G_GUINT64_FORMAT,
offset); offset);
ogg->seek_pad = cur; ogg->seek_pad = cur;
@ -424,8 +423,7 @@ gst_ogg_demux_handle_event (GstPad * pad, GstEvent * event)
gst_event_unref (event); gst_event_unref (event);
GST_FLAG_UNSET (ogg, GST_OGG_FLAG_WAIT_FOR_DISCONT); GST_FLAG_UNSET (ogg, GST_OGG_FLAG_WAIT_FOR_DISCONT);
FOR_PAD_IN_CURRENT_CHAIN (ogg, pad, FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
pad->flags |= GST_OGG_PAD_NEEDS_DISCONT; pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;);
);
break; break;
case GST_EVENT_EOS: case GST_EVENT_EOS:
if (ogg->state == GST_OGG_STATE_SETUP) { if (ogg->state == GST_OGG_STATE_SETUP) {
@ -704,6 +702,10 @@ br:
CURRENT_CHAIN (ogg)->pads = CURRENT_CHAIN (ogg)->pads =
g_slist_prepend (CURRENT_CHAIN (ogg)->pads, cur); 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) { if (cur == NULL) {
GST_ELEMENT_ERROR (ogg, STREAM, DECODE, (NULL), GST_ELEMENT_ERROR (ogg, STREAM, DECODE, (NULL),