ext/wavpack/gstwavpackparse.c: Fix the SEEKING query. We can seek if we are in pull...
authorSebastian Dröge <slomo@circular-chaos.org>
Thu, 25 Jan 2007 23:27:59 +0000 (23:27 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Thu, 25 Jan 2007 23:27:59 +0000 (23:27 +0000)
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
Fix the SEEKING query. We can seek if we are in pull mode, not the
other way around. Also set the correct format in the seeking query and
handle the case where the headers are not read yet and we can't say
anything about our seeking capabilities.

ext/wavpack/gstwavpackparse.c

index 47f6cd54abf042511793ad7ff3903af3a6b7957e..ed1de714441b43b471629720da09a77aaf8295d1 100644 (file)
@@ -343,14 +343,17 @@ gst_wavpack_parse_src_query (GstPad * pad, GstQuery * query)
         gboolean seekable;
         gint64 duration = -1;
 
-        gst_pad_query_duration (pad, &format, &duration);
+        /* only fails if we didn't read the headers yet and can't say
+         * anything about our seeking capabilities */
+        if (!gst_pad_query_duration (pad, &format, &duration))
+          break;
 
         /* can't seek in streaming mode yet */
         GST_OBJECT_LOCK (parse);
-        seekable = (parse->adapter != NULL);
+        seekable = (parse->adapter == NULL);
         GST_OBJECT_UNLOCK (parse);
 
-        gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration);
+        gst_query_set_seeking (query, format, seekable, 0, duration);
         ret = TRUE;
       }
       break;