Pass unhandled queries upstream instead of just dropping them (#326446). Update query...
authorTim-Philipp Müller <tim@centricular.net>
Mon, 6 Feb 2006 12:18:45 +0000 (12:18 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 6 Feb 2006 12:18:45 +0000 (12:18 +0000)
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_src_query),
(gst_dvdemux_sink_query):
* ext/flac/gstflacdec.c: (gst_flac_dec_src_query):
* ext/speex/gstspeexdec.c: (speex_get_query_types),
(speex_dec_src_query):
* ext/speex/gstspeexenc.c: (gst_speexenc_src_query),
(gst_speexenc_sink_query):
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_get_src_query_types),
(gst_matroska_demux_handle_src_query):
* gst/wavparse/gstwavparse.c: (gst_wavparse_get_query_types),
(gst_wavparse_pad_query):
Pass unhandled queries upstream instead of just dropping
them (#326446). Update query type arrays here and there.

ChangeLog
ext/dv/gstdvdemux.c
ext/flac/gstflacdec.c
ext/speex/gstspeexdec.c
ext/speex/gstspeexenc.c
gst/avi/gstavidemux.c
gst/matroska/matroska-demux.c
gst/wavparse/gstwavparse.c

index c8d9cdf..4159930 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * ext/dv/gstdvdemux.c: (gst_dvdemux_src_query),
+       (gst_dvdemux_sink_query):
+       * ext/flac/gstflacdec.c: (gst_flac_dec_src_query):
+       * ext/speex/gstspeexdec.c: (speex_get_query_types),
+       (speex_dec_src_query):
+       * ext/speex/gstspeexenc.c: (gst_speexenc_src_query),
+       (gst_speexenc_sink_query):
+       * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
+       * gst/matroska/matroska-demux.c:
+       (gst_matroska_demux_get_src_query_types),
+       (gst_matroska_demux_handle_src_query):
+       * gst/wavparse/gstwavparse.c: (gst_wavparse_get_query_types),
+       (gst_wavparse_pad_query):
+         Pass unhandled queries upstream instead of just dropping
+         them (#326446). Update query type arrays here and there.
+
+2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>
+
        * tests/check/elements/matroskamux.c: (setup_src_pad):
          Collectpads in core got changed and now also holds a
          reference to any pad that is part of it. Fix refcount
index e93d532..5765aa3 100644 (file)
@@ -516,7 +516,7 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
   gst_object_unref (dvdemux);
@@ -565,7 +565,7 @@ gst_dvdemux_sink_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
   gst_object_unref (dvdemux);
index 836eadc..92aa4e2 100644 (file)
@@ -826,7 +826,7 @@ gst_flac_dec_src_query (GstPad * pad, GstQuery * query)
     }
 
     default:{
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
     }
   }
index 5f68a32..5bf9581 100644 (file)
@@ -118,6 +118,7 @@ speex_get_query_types (GstPad * pad)
 {
   static const GstQueryType speex_dec_src_query_types[] = {
     GST_QUERY_POSITION,
+    GST_QUERY_DURATION,
     0
   };
 
@@ -212,6 +213,7 @@ static gboolean
 speex_dec_src_query (GstPad * pad, GstQuery * query)
 {
   GstSpeexDec *dec = GST_SPEEXDEC (GST_OBJECT_PARENT (pad));
+  gboolean res = FALSE;
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
@@ -221,10 +223,10 @@ speex_dec_src_query (GstPad * pad, GstQuery * query)
 
       gst_query_parse_position (query, &format, NULL);
 
-      speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, dec->samples_out,
-          &format, &cur);
-
-      gst_query_set_position (query, format, cur);
+      if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT,
+                  dec->samples_out, &format, &cur))) {
+        gst_query_set_position (query, format, cur);
+      }
       break;
     }
     case GST_QUERY_DURATION:
@@ -234,19 +236,19 @@ speex_dec_src_query (GstPad * pad, GstQuery * query)
       gint64 total_samples;
 
       if (!(peer = gst_pad_get_peer (dec->sinkpad)))
-        return FALSE;
+        break;
 
       gst_pad_query_duration (peer, &my_format, &total_samples);
       gst_object_unref (peer);
 
-      speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, total_samples,
-          &my_format, &total_samples);
-
-      gst_query_set_duration (query, GST_FORMAT_TIME, total_samples);
+      if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT,
+                  total_samples, &my_format, &total_samples))) {
+        gst_query_set_duration (query, GST_FORMAT_TIME, total_samples);
+      }
       break;
     }
     default:
-      return FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
 
index 7d6f369..f3f680d 100644 (file)
@@ -440,7 +440,7 @@ gst_speexenc_src_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
 
@@ -473,7 +473,7 @@ gst_speexenc_sink_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
 
index a67ebc2..d4e22a1 100644 (file)
@@ -416,7 +416,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
 
index 10c3c98..cdbeb2e 100644 (file)
@@ -928,6 +928,7 @@ gst_matroska_demux_get_src_query_types (GstPad * pad)
 {
   static const GstQueryType query_types[] = {
     GST_QUERY_POSITION,
+    GST_QUERY_DURATION,
     0
   };
 
@@ -981,6 +982,7 @@ gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query)
     }
 
     default:
+      res = gst_pad_query_default (pad, query);
       break;
   }
 
index 81324ae..d3b1b7f 100644 (file)
@@ -1260,6 +1260,8 @@ gst_wavparse_get_query_types (GstPad * pad)
 {
   static const GstQueryType types[] = {
     GST_QUERY_POSITION,
+    GST_QUERY_DURATION,
+    GST_QUERY_CONVERT,
     0
   };
 
@@ -1343,7 +1345,7 @@ gst_wavparse_pad_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = FALSE;
+      res = gst_pad_query_default (pad, query);
       break;
   }
   return res;