gst/: Use gst_pad_query_peer_duration() utility function here.
authorTim-Philipp Müller <tim@centricular.net>
Sun, 11 Jun 2006 18:20:39 +0000 (18:20 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Sun, 11 Jun 2006 18:20:39 +0000 (18:20 +0000)
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size):
* gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size):
Use gst_pad_query_peer_duration() utility function here.

ChangeLog
gst/apetag/gsttagdemux.c
gst/id3demux/gstid3demux.c

index db10ddf..8b2eeed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-06-11  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size):
+       * gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size):
+         Use gst_pad_query_peer_duration() utility function here.
+
 2006-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * autogen.sh:
index 6e56b14..ef9dc8c 100644 (file)
@@ -665,27 +665,21 @@ gst_tag_demux_sink_event (GstPad * pad, GstEvent * event)
 static gboolean
 gst_tag_demux_get_upstream_size (GstTagDemux * tagdemux)
 {
-  GstPad *peer = NULL;
   GstFormat format;
-  gint64 result;
-  gboolean res = FALSE;
+  gint64 len;
 
   /* Short-cut if we already queried upstream */
   if (tagdemux->priv->upstream_size > 0)
     return TRUE;
 
-  if ((peer = gst_pad_get_peer (tagdemux->priv->sinkpad)) == NULL)
-    return FALSE;
-
   format = GST_FORMAT_BYTES;
-  if (gst_pad_query_duration (peer, &format, &result) &&
-      format == GST_FORMAT_BYTES && result > 0) {
-    tagdemux->priv->upstream_size = result;
-    res = TRUE;
+  if (!gst_pad_query_peer_duration (tagdemux->priv->sinkpad, &format, &len) ||
+      len <= 0) {
+    return FALSE;
   }
 
-  gst_object_unref (peer);
-  return res;
+  tagdemux->priv->upstream_size = len;
+  return TRUE;
 }
 
 static gboolean
index 40fdf65..e03a193 100644 (file)
@@ -600,37 +600,21 @@ gst_id3demux_get_property (GObject * object, guint prop_id,
 static gboolean
 id3demux_get_upstream_size (GstID3Demux * id3demux)
 {
-  GstQuery *query;
-  GstPad *peer = NULL;
   GstFormat format;
   gint64 result;
-  gboolean res = FALSE;
 
   /* Short-cut if we already queried upstream */
   if (id3demux->upstream_size > 0)
     return TRUE;
 
-  if ((peer = gst_pad_get_peer (id3demux->sinkpad)) == NULL)
+  format = GST_FORMAT_BYTES;
+  if (!gst_pad_query_peer_duration (id3demux->sinkpad, &format, &result) ||
+      result < 0) {
     return FALSE;
-
-  query = gst_query_new_duration (GST_FORMAT_BYTES);
-  gst_query_set_duration (query, GST_FORMAT_BYTES, -1);
-
-  if (!gst_pad_query (peer, query))
-    goto out;
-
-  gst_query_parse_duration (query, &format, &result);
-  gst_query_unref (query);
-
-  if (format != GST_FORMAT_BYTES || result == -1)
-    goto out;
+  }
 
   id3demux->upstream_size = result;
-  res = TRUE;
-
-out:
-  gst_object_unref (peer);
-  return res;
+  return TRUE;
 }
 
 static gboolean