From: Seungha Yang Date: Mon, 26 Jul 2021 09:43:04 +0000 (+0900) Subject: jack: Fix assertion fail when device supports only mono channel X-Git-Tag: 1.19.3~509^2~74 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9c9ad0c8d6c1046ad09e76234abdb08aa6e17fde;p=platform%2Fupstream%2Fgstreamer.git 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: --- diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index 2e14ce9..856674f 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 7c26854..b0bc721 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);