gst-libs/gst/riff/riff-read.c: Don't bail on unknown events.
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 10 Jan 2005 16:09:25 +0000 (16:09 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 10 Jan 2005 16:09:25 +0000 (16:09 +0000)
Original commit message from CVS:
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
Don't bail on unknown events.
* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
Don't crash on events before negotiation.
* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
Send tags on pads, too.
* gst/playback/gststreamselector.c:
(gst_stream_selector_request_new_pad):
Forward events on first pad if no input was selected yet.

ChangeLog
gst-libs/gst/riff/riff-read.c
gst/audioscale/gstaudioscale.c
gst/playback/gststreamselector.c

index e306119ff5bf1819287a82f2fe93b272ece4df97..7ed9e1600b8276de2d5cae8e2a25e822731abbb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
+       * gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
+         Don't bail on unknown events.
+       * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
+         Don't crash on events before negotiation.
+       * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
+         Send tags on pads, too.
+       * gst/playback/gststreamselector.c:
+       (gst_stream_selector_request_new_pad):
+         Forward events on first pad if no input was selected yet.
+
 2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
        * gst/playback/gstplaybasebin.c: (setup_substreams):
index e77cb73edb0e6aea72685af7111c5625ee3d782e..4d379a7bc96bdc9cbdef2b3731d8e057e078f248 100644 (file)
@@ -190,7 +190,7 @@ gst_riff_read_use_event (GstRiffRead * riff, GstEvent * event)
     default:
       GST_WARNING ("don't know how to handle event %d", GST_EVENT_TYPE (event));
       gst_pad_event_default (riff->sinkpad, event);
-      return FALSE;
+      return TRUE;
   }
 
   /* happy */
index af95ce9e3ec0a497fa72a128b36db931959b6e13..0734940a90703c43f3c0e22c7771b141357c159a 100644 (file)
@@ -571,9 +571,11 @@ gst_audioscale_chain (GstPad * pad, GstData * _data)
 
     switch (GST_EVENT_TYPE (e)) {
       case GST_EVENT_DISCONTINUOUS:{
-        gint64 new_off;
+        gint64 new_off = 0;
 
-        if (gst_event_discont_get_value (e, GST_FORMAT_TIME, &new_off)) {
+        if (!audioscale->gst_resample) {
+          GST_LOG ("Discont before negotiation took place - ignoring");
+        } else if (gst_event_discont_get_value (e, GST_FORMAT_TIME, &new_off)) {
           /* time -> out-sample */
           new_off = new_off * audioscale->gst_resample->o_rate / GST_SECOND;
         } else if (gst_event_discont_get_value (e,
@@ -589,7 +591,7 @@ gst_audioscale_chain (GstPad * pad, GstData * _data)
           new_off /= audioscale->gst_resample->i_rate;
         } else {
           /* *sigh* */
-          new_off = 0;
+          GST_DEBUG ("Discont without value - ignoring");
         }
         audioscale->gst_resample_offset = new_off;
         /* fall-through */
index 4a766ce34684e79114945bf7acc88fa6f30893fa..bae181e45f72d1de0b390f7793cdc54eae458d80 100644 (file)
@@ -233,6 +233,8 @@ gst_stream_selector_request_new_pad (GstElement * element,
 
   name = g_strdup_printf ("sink%d", sel->nb_sinkpads++);
   sinkpad = gst_pad_new_from_template (templ, name);
+  if (sel->nb_sinkpads == 1)
+    sel->last_active_sinkpad = sinkpad;
   g_free (name);
 
   gst_pad_set_link_function (sinkpad,