summaryrefslogtreecommitdiffstats
path: root/gst/rtp/gstrtppcmadepay.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtp/gstrtppcmadepay.c')
-rw-r--r--gst/rtp/gstrtppcmadepay.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c
index 6b03ba5a..f41f7f1d 100644
--- a/gst/rtp/gstrtppcmadepay.c
+++ b/gst/rtp/gstrtppcmadepay.c
@@ -112,7 +112,6 @@ gst_rtp_pcma_depay_init (GstRtpPcmaDepay * rtppcmadepay,
depayload = GST_BASE_RTP_DEPAYLOAD (rtppcmadepay);
- depayload->clock_rate = 8000;
gst_pad_use_fixed_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload));
}
@@ -120,11 +119,17 @@ static gboolean
gst_rtp_pcma_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps)
{
GstCaps *srccaps;
+ GstStructure *structure;
gboolean ret;
+ gint clock_rate = 8000; /* default */
- srccaps = gst_caps_new_simple ("audio/x-alaw",
- "channels", G_TYPE_INT, 1, "rate", G_TYPE_INT, 8000, NULL);
+ structure = gst_caps_get_structure (caps, 0);
+
+ gst_structure_get_int (structure, "clock-rate", &clock_rate);
+ depayload->clock_rate = clock_rate;
+ srccaps = gst_caps_new_simple ("audio/x-alaw",
+ "channels", G_TYPE_INT, 1, "rate", G_TYPE_INT, clock_rate, NULL);
ret = gst_pad_set_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload), srccaps);
gst_caps_unref (srccaps);