From d61498d8420ebee794b005f677212b25f5561369 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Wed, 25 Feb 2009 13:34:05 -0800 Subject: [PATCH] mp3parse: fix accurate seeks to near 0 Integer underflow made accurate seeks to near zero fail and seek to completely the wrong place. Fix by clamping to zero, since we can't seek to negative times anyway. --- gst/mpegaudioparse/gstmpegaudioparse.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/mpegaudioparse/gstmpegaudioparse.c b/gst/mpegaudioparse/gstmpegaudioparse.c index ca5d112aaa..4f0a38f431 100644 --- a/gst/mpegaudioparse/gstmpegaudioparse.c +++ b/gst/mpegaudioparse/gstmpegaudioparse.c @@ -1794,12 +1794,14 @@ mp3parse_handle_seek (GstMPEGAudioParse * mp3parse, GstEvent * event) MPEGAudioSeekEntry *entry = NULL, *start_entry = NULL, *stop_entry = NULL; GList *start_node, *stop_node; + gint64 seek_ts = (cur > mp3parse->max_bitreservoir) ? + (cur - mp3parse->max_bitreservoir) : 0; for (start_node = mp3parse->seek_table; start_node; start_node = start_node->next) { entry = start_node->data; - if (cur - mp3parse->max_bitreservoir >= entry->timestamp) { + if (seek_ts >= entry->timestamp) { start_entry = entry; break; }