From: Wim Taymans Date: Tue, 21 Aug 2007 16:04:47 +0000 (+0000) Subject: gst/rtpmanager/rtpjitterbuffer.*: Fix undefined overflow prone ts_diff handling. X-Git-Tag: 1.19.3~509^2~9951 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce70e0f43e12a4efbdf7e92ce223005ae41386c4;p=platform%2Fupstream%2Fgstreamer.git 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. --- diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index 1ba1c81..c36a25c 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 14b5b3f..8bff03c 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__ */