From 7460bb6d910201c1b97db893e1d5a0186366717e Mon Sep 17 00:00:00 2001 From: Thijs Vermeir Date: Tue, 29 Jan 2008 18:57:27 +0000 Subject: gst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the buffer caps when we receive a new payload... Original commit message from CVS: Patch by: Thijs Vermeir * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain): Try to get the new clock-rate from the buffer caps when we receive a new payload type instead of always firing the signal. Fixes #512774. --- ChangeLog | 11 ++++++++++- gst/rtpmanager/gstrtpjitterbuffer.c | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9ce784e6..6dc80baa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-01-29 Wim Taymans + + Patch by: Thijs Vermeir + + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain): + Try to get the new clock-rate from the buffer caps when we receive a new + payload type instead of always firing the signal. Fixes #512774. + 2008-01-29 Sebastian Dröge * ext/mpeg2enc/gstmpeg2enc.cc: @@ -247,7 +256,7 @@ (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Remove old unused variable. Track pt on input buffers and get the clock-rate when it changes. - Ignore packets with unknown clock-rate. See #511686. + Ignore packets with unknown clock-rate. Fixes #511146. 2008-01-25 Zaheer Abbas Merali diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 142cc95f..3d2e7797 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -806,9 +806,16 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstBuffer * buffer) priv = jitterbuffer->priv; if (priv->last_pt != gst_rtp_buffer_get_payload_type (buffer)) { + GstCaps *caps; + priv->last_pt = gst_rtp_buffer_get_payload_type (buffer); /* reset clock-rate so that we get a new one */ priv->clock_rate = -1; + /* Try to get the clock-rate from the caps first if we can. If there are no + * caps we must fire the signal to get the clock-rate. */ + if ((caps = GST_BUFFER_CAPS (buffer))) { + gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps); + } } if (priv->clock_rate == -1) { -- cgit v1.2.1