summaryrefslogtreecommitdiffstats
path: root/ext/flac
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2006-04-08 13:09:50 +0000
committerTim-Philipp Müller <tim@centricular.net>2006-04-08 13:09:50 +0000
commitd4e7ce1e524939268d9df0a289482917cda352b5 (patch)
tree664ea74d975716169ccfc98d6bb8ba7523306f20 /ext/flac
parent661ddc65c3981aaa640ef9135eb35901f7861db1 (diff)
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.
Diffstat (limited to 'ext/flac')
-rw-r--r--ext/flac/gstflacdec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index 1bfcf487..9c56fbf9 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);