summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2007-08-21 16:04:47 +0000
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2009-08-11 02:30:28 +0100
commitce70e0f43e12a4efbdf7e92ce223005ae41386c4 (patch)
treecbdd425b4ad368456e6d31ea0ecd4e62e3aa281a
parent076da98efb18fd7df3020baed7ead7f22ef0f219 (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.
-rw-r--r--gst/rtpmanager/rtpjitterbuffer.c8
-rw-r--r--gst/rtpmanager/rtpjitterbuffer.h2
2 files changed, 5 insertions, 5 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;
}
diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h
index 14b5b3f2..8bff03c8 100644
--- a/gst/rtpmanager/rtpjitterbuffer.h
+++ b/gst/rtpmanager/rtpjitterbuffer.h
@@ -62,6 +62,4 @@ void rtp_jitter_buffer_flush (RTPJitterBuffer *jbuf);
guint rtp_jitter_buffer_num_packets (RTPJitterBuffer *jbuf);
guint32 rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer *jbuf);
-
-
#endif /* __RTP_JITTER_BUFFER_H__ */