ext/flac/gstflacdec.c: Don't try to seek beyond the end of the file (would occasional...
authorTim-Philipp Müller <tim@centricular.net>
Sat, 8 Apr 2006 13:09:50 +0000 (13:09 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 8 Apr 2006 13:09:50 +0000 (13:09 +0000)
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
ext/flac/gstflacdec.c

index f1ad8e352b0bf5aa8736894e07501a3dee72fcac..104176b868f7730e3dc1817f57420e4d47f5eee2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-04-08  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * 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  <tim at centricular dot net>
 
        * ext/flac/gstflacdec.c: (gst_flac_calculate_crc8),
index 1bfcf487ea88c79c0910291a929698f7ecf34bb4..9c56fbf9689db26226dce9c8c9a9351a0cefbbb8 100644 (file)
@@ -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);