[gst-plugins-farsight/master] Improve the minimum quanta to make it impossible for the duration to fall down to 0
Olivier Crête
olivier.crete at collabora.co.uk
Mon Feb 16 13:12:20 PST 2009
---
gst/dtmf/gstrtpdtmfdepay.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/gst/dtmf/gstrtpdtmfdepay.c b/gst/dtmf/gstrtpdtmfdepay.c
index 8e82865..85dac6f 100644
--- a/gst/dtmf/gstrtpdtmfdepay.c
+++ b/gst/dtmf/gstrtpdtmfdepay.c
@@ -371,8 +371,19 @@ gst_rtp_dtmf_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
/* clip to whole units of unit_time */
if (rtpdtmfdepay->unit_time)
- dtmf_payload.duration -= dtmf_payload.duration %
- ((rtpdtmfdepay->unit_time * depayload->clock_rate) / 1000);
+ {
+ guint unit_time_clock =
+ (rtpdtmfdepay->unit_time * depayload->clock_rate) / 1000;
+ if (dtmf_payload.duration % unit_time_clock)
+ {
+ /* Make sure we don't overflow the duration */
+ if (dtmf_payload.duration < G_MAXUINT16 - unit_time_clock)
+ dtmf_payload.duration += unit_time_clock -
+ (dtmf_payload.duration % unit_time_clock);
+ else
+ dtmf_payload.duration -= dtmf_payload.duration % unit_time_clock;
+ }
+ }
GST_DEBUG_OBJECT (depayload, "Received new RTP DTMF packet : "
"marker=%d - timestamp=%u - event=%d - duration=%d",
--
1.5.6.5
More information about the farsight-commits
mailing list