summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-07-26 18:43:04 +0900
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-07-28 08:16:15 +0000
commit9c9ad0c8d6c1046ad09e76234abdb08aa6e17fde (patch)
treee8774cc738ff5bc5b2c38b8036f45ffc91a8abf0 /ext
parentb1fb787859fd9d0069bd28c2098819e7625e63e1 (diff)
downloadgstreamer-plugins-good-9c9ad0c8d6c1046ad09e76234abdb08aa6e17fde.tar.gz
jack: Fix assertion fail when device supports only mono channel
MAX should be larger than MIN for GST_TYPE_INT_RANGE. GStreamer-CRITICAL **: 18:26:27.912: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1033>
Diffstat (limited to 'ext')
-rw-r--r--ext/jack/gstjackaudiosink.c10
-rw-r--r--ext/jack/gstjackaudiosrc.c10
2 files changed, 14 insertions, 6 deletions
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index 2e14ce963..856674f12 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -949,9 +949,13 @@ gst_jack_audio_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
if (!sink->caps) {
sink->caps = gst_caps_new_simple ("audio/x-raw",
"format", G_TYPE_STRING, GST_JACK_FORMAT_STR,
- "layout", G_TYPE_STRING, "interleaved",
- "rate", G_TYPE_INT, rate,
- "channels", GST_TYPE_INT_RANGE, min, max, NULL);
+ "layout", G_TYPE_STRING, "interleaved", "rate", G_TYPE_INT, rate, NULL);
+ if (min == max) {
+ gst_caps_set_simple (sink->caps, "channels", G_TYPE_INT, min, NULL);
+ } else {
+ gst_caps_set_simple (sink->caps,
+ "channels", GST_TYPE_INT_RANGE, min, max, NULL);
+ }
}
GST_INFO_OBJECT (sink, "returning caps %" GST_PTR_FORMAT, sink->caps);
diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
index 7c26854ea..b0bc72144 100644
--- a/ext/jack/gstjackaudiosrc.c
+++ b/ext/jack/gstjackaudiosrc.c
@@ -963,9 +963,13 @@ gst_jack_audio_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter)
if (!src->caps) {
src->caps = gst_caps_new_simple ("audio/x-raw",
"format", G_TYPE_STRING, GST_JACK_FORMAT_STR,
- "layout", G_TYPE_STRING, "interleaved",
- "rate", G_TYPE_INT, rate,
- "channels", GST_TYPE_INT_RANGE, min, max, NULL);
+ "layout", G_TYPE_STRING, "interleaved", "rate", G_TYPE_INT, rate, NULL);
+ if (min == max) {
+ gst_caps_set_simple (src->caps, "channels", G_TYPE_INT, min, NULL);
+ } else {
+ gst_caps_set_simple (src->caps,
+ "channels", GST_TYPE_INT_RANGE, min, max, NULL);
+ }
}
GST_INFO_OBJECT (src, "returning caps %" GST_PTR_FORMAT, src->caps);