From d4e7ce1e524939268d9df0a289482917cda352b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 8 Apr 2006 13:09:50 +0000 Subject: [PATCH] ext/flac/gstflacdec.c: Don't try to seek beyond the end of the file (would occasionally display error dialogs in tote... Original commit message from CVS: * ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event): Don't try to seek beyond the end of the file (would occasionally display error dialogs in totem when seeking to the end) (#335869). Will still throw an error though if the file is truncated and the total_samples value in the stream header is wrong. --- ChangeLog | 9 +++++++++ ext/flac/gstflacdec.c | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index f1ad8e352b..104176b868 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-04-08 Tim-Philipp Müller + + * ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event): + Don't try to seek beyond the end of the file (would + occasionally display error dialogs in totem when seeking + to the end) (#335869). Will still throw an error though + if the file is truncated and the total_samples value in + the stream header is wrong. + 2006-04-07 Tim-Philipp Müller * ext/flac/gstflacdec.c: (gst_flac_calculate_crc8), diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index 1bfcf487ea..9c56fbf968 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -1119,6 +1119,13 @@ gst_flac_dec_handle_seek_event (GstFlacDec * flacdec, GstEvent * event) /* operate on segment copy until we know the seek worked */ segment = flacdec->segment; + if (segment.duration > 0) { + if (start != -1) + start = CLAMP (start, 0, segment.duration - 1); + if (stop != -1) + stop = CLAMP (stop, 0, segment.duration - 1); + } + gst_segment_set_seek (&segment, rate, GST_FORMAT_DEFAULT, seek_flags, start_type, start, stop_type, stop, &only_update);