ext/ogg/gstoggdemux.c: signal no-more-pads
authorBenjamin Otte <otte@gnome.org>
Thu, 13 May 2004 16:07:16 +0000 (16:07 +0000)
committerBenjamin Otte <otte@gnome.org>
Thu, 13 May 2004 16:07:16 +0000 (16:07 +0000)
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
signal no-more-pads

ChangeLog
ext/ogg/gstoggdemux.c

index a0387a3..9506943 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        * ext/dv/gstdvdec.c: (gst_dvdec_src_convert)
index d836f46..90d375d 100644 (file)
@@ -117,7 +117,7 @@ struct _GstOggDemux
   GstOggState state;
   GArray *chains;
   gint current_chain;
-  guint flags;
+  gboolean bos;
 
   /* ogg stuff */
   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);
       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;
@@ -424,8 +423,7 @@ gst_ogg_demux_handle_event (GstPad * pad, GstEvent * event)
       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) {
@@ -704,6 +702,10 @@ br:
       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),