From: Arun Raghavan Date: Fri, 10 Mar 2023 17:06:08 +0000 (-0500) Subject: rtpopusdepay: Assume 48 kHz if sprop-maxcapturerate is missing X-Git-Tag: 1.22.7~420 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0dd60e06e82389c5b88b197de3e1354d5610804b;p=platform%2Fupstream%2Fgstreamer.git rtpopusdepay: Assume 48 kHz if sprop-maxcapturerate is missing This matches 7587, section 6.1: > sprop-maxcapturerate: a hint about the maximum input sampling rate > [...] > bandwidths (Table 1). By default, the sender is assumed to have > no limitations, i.e., 48000. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354 Part-of: --- diff --git a/subprojects/gst-plugins-good/gst/rtp/gstrtpopusdepay.c b/subprojects/gst-plugins-good/gst/rtp/gstrtpopusdepay.c index d20dd7d..220f5c0 100644 --- a/subprojects/gst-plugins-good/gst/rtp/gstrtpopusdepay.c +++ b/subprojects/gst-plugins-good/gst/rtp/gstrtpopusdepay.c @@ -100,6 +100,8 @@ gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) GstStructure *s; gboolean ret; const gchar *sprop_maxcapturerate; + /* Default unless overridden by sprop_maxcapturerate */ + gint rate = 48000; srccaps = gst_caps_new_empty_simple ("audio/x-opus"); @@ -215,19 +217,22 @@ gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) if ((sprop_maxcapturerate = gst_structure_get_string (s, "sprop-maxcapturerate"))) { - gulong rate; gchar *tailptr; + gulong tmp_rate; - rate = strtoul (sprop_maxcapturerate, &tailptr, 10); - if (rate > INT_MAX || *tailptr != '\0') { + tmp_rate = strtoul (sprop_maxcapturerate, &tailptr, 10); + if (tmp_rate > INT_MAX || *tailptr != '\0') { GST_WARNING_OBJECT (depayload, "Failed to parse sprop-maxcapturerate value '%s'", sprop_maxcapturerate); } else { - gst_caps_set_simple (srccaps, "rate", G_TYPE_INT, rate, NULL); + /* Valid rate from sprop, let's use it */ + rate = tmp_rate; } } + gst_caps_set_simple (srccaps, "rate", G_TYPE_INT, rate, NULL); + ret = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), srccaps); GST_DEBUG_OBJECT (depayload,