gst/apetag/gsttagdemux.c: ... and fix the very same leaks in GstTagDemux.
authorTim-Philipp Müller <tim@centricular.net>
Sat, 11 Feb 2006 13:54:26 +0000 (13:54 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 11 Feb 2006 13:54:26 +0000 (13:54 +0000)
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size),
(gst_tag_demux_do_typefind):
... and fix the very same leaks in GstTagDemux.

ChangeLog
gst/apetag/gsttagdemux.c

index f06a5ed..c370b01 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-02-11  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size),
+       (gst_tag_demux_do_typefind):
+         ... and fix the very same leaks in GstTagDemux.
+
 2006-02-11  Jan Schmidt  <thaytan@mad.scientist.com>
 
        * gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size),
index 9bb43c8..c18ad21 100644 (file)
@@ -621,7 +621,6 @@ error:
 static gboolean
 gst_tag_demux_get_upstream_size (GstTagDemux * tagdemux)
 {
-  GstQuery *query;
   GstPad *peer = NULL;
   GstFormat format;
   gint64 result;
@@ -634,21 +633,13 @@ gst_tag_demux_get_upstream_size (GstTagDemux * tagdemux)
   if ((peer = gst_pad_get_peer (tagdemux->priv->sinkpad)) == NULL)
     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);
-
-  if (format != GST_FORMAT_BYTES || result == -1)
-    goto out;
-
-  tagdemux->priv->upstream_size = result;
-  res = TRUE;
+  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;
+  }
 
-out:
   gst_object_unref (peer);
   return res;
 }
@@ -1319,6 +1310,7 @@ gst_tag_demux_do_typefind (GstTagDemux * tagdemux, GstBuffer * buffer)
     return find.caps;
   }
 
+  gst_caps_replace (&find.caps, NULL);
   return NULL;
 }