summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2020-05-06 11:47:56 +0300
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-09-25 13:46:11 +0000
commit77d35ef696a3035af713c41df92faddd18178d7a (patch)
treeb927c2010421b25908e6105025cd9540e5352365
parentdd8711fbebe6f9fd8c74a2398dda069687d41cb7 (diff)
downloadgstreamer-plugins-bad-77d35ef696a3035af713c41df92faddd18178d7a.tar.gz
musepackdec: Don't fail all queries if no sample rate is known yet
The sample rate is only needed for the POSITION/DURATION queries and we would otherwise fail important queries like the CAPS query. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1601>
-rw-r--r--ext/musepack/gstmusepackdec.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/musepack/gstmusepackdec.c b/ext/musepack/gstmusepackdec.c
index 8a0da18aa..892828b6b 100644
--- a/ext/musepack/gstmusepackdec.c
+++ b/ext/musepack/gstmusepackdec.c
@@ -282,13 +282,13 @@ gst_musepackdec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
samplerate = g_atomic_int_get (&musepackdec->rate);
- if (samplerate == 0)
- goto done;
-
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:{
gint64 cur, cur_off;
+ if (samplerate == 0)
+ goto done;
+
gst_query_parse_position (query, &format, NULL);
GST_OBJECT_LOCK (musepackdec);
@@ -308,6 +308,9 @@ gst_musepackdec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
case GST_QUERY_DURATION:{
gint64 len, len_off;
+ if (samplerate == 0)
+ goto done;
+
gst_query_parse_duration (query, &format, NULL);
GST_OBJECT_LOCK (musepackdec);