diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ext/flac/gstflacdec.c | 7 |
2 files changed, 16 insertions, 0 deletions
@@ -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), 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); |