mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 05:16:13 +00:00
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.
This commit is contained in:
parent
332899b3b4
commit
214410b343
3 changed files with 12 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-08-21 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
|
* gst/rtpmanager/rtpjitterbuffer.c:
|
||||||
|
(rtp_jitter_buffer_get_ts_diff):
|
||||||
|
* gst/rtpmanager/rtpjitterbuffer.h:
|
||||||
|
Fix undefined overflow prone ts_diff handling.
|
||||||
|
|
||||||
2007-08-21 Wim Taymans <wim.taymans@gmail.com>
|
2007-08-21 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
* gst/modplug/gstmodplug.cc:
|
* gst/modplug/gstmodplug.cc:
|
||||||
|
|
|
@ -215,8 +215,9 @@ rtp_jitter_buffer_num_packets (RTPJitterBuffer * jbuf)
|
||||||
guint32
|
guint32
|
||||||
rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer * jbuf)
|
rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer * jbuf)
|
||||||
{
|
{
|
||||||
guint32 high_ts, low_ts;
|
guint64 high_ts, low_ts;
|
||||||
GstBuffer *high_buf, *low_buf;
|
GstBuffer *high_buf, *low_buf;
|
||||||
|
guint32 result;
|
||||||
|
|
||||||
g_return_val_if_fail (jbuf != NULL, 0);
|
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 */
|
/* it needs to work if ts wraps */
|
||||||
if (high_ts >= low_ts) {
|
if (high_ts >= low_ts) {
|
||||||
return high_ts - low_ts;
|
result = (guint32) (high_ts - low_ts);
|
||||||
} else {
|
} else {
|
||||||
return high_ts + G_MAXUINT32 + 1 - low_ts;
|
result = (guint32) (high_ts + G_MAXUINT32 + 1 - low_ts);
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,4 @@ void rtp_jitter_buffer_flush (RTPJitterBuffer *jbuf);
|
||||||
guint rtp_jitter_buffer_num_packets (RTPJitterBuffer *jbuf);
|
guint rtp_jitter_buffer_num_packets (RTPJitterBuffer *jbuf);
|
||||||
guint32 rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer *jbuf);
|
guint32 rtp_jitter_buffer_get_ts_diff (RTPJitterBuffer *jbuf);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __RTP_JITTER_BUFFER_H__ */
|
#endif /* __RTP_JITTER_BUFFER_H__ */
|
||||||
|
|
Loading…
Reference in a new issue