diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2007-08-21 16:04:47 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-08-11 02:30:28 +0100 |
commit | ce70e0f43e12a4efbdf7e92ce223005ae41386c4 (patch) | |
tree | cbdd425b4ad368456e6d31ea0ecd4e62e3aa281a /gst/rtpmanager/rtpjitterbuffer.c | |
parent | 076da98efb18fd7df3020baed7ead7f22ef0f219 (diff) |
gst/rtpmanager/rtpjitterbuffer.*: Fix undefined overflow prone ts_diff handling.
Original commit message from CVS:
* gst/rtpmanager/rtpjitterbuffer.c:
(rtp_jitter_buffer_get_ts_diff):
* gst/rtpmanager/rtpjitterbuffer.h:
Fix undefined overflow prone ts_diff handling.
Diffstat (limited to 'gst/rtpmanager/rtpjitterbuffer.c')
-rw-r--r-- | gst/rtpmanager/rtpjitterbuffer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index 1ba1c819..c36a25c5 100644 --- a/gst/rtpmanager/rtpjitterbuffer.c +++ b/gst/rtpmanager/rtpjitterbuffer.c @@ -215,8 +215,9 @@ rtp_jitter_buffer_num_packets (RTPJitterBuffer * jbuf) guint32 rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer * jbuf) { - guint32 high_ts, low_ts; + guint64 high_ts, low_ts; GstBuffer *high_buf, *low_buf; + guint32 result; g_return_val_if_fail (jbuf != NULL, 0); @@ -231,8 +232,9 @@ rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer * jbuf) /* it needs to work if ts wraps */ if (high_ts >= low_ts) { - return high_ts - low_ts; + result = (guint32) (high_ts - low_ts); } else { - return high_ts + G_MAXUINT32 + 1 - low_ts; + result = (guint32) (high_ts + G_MAXUINT32 + 1 - low_ts); } + return result; } |