diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2006-04-08 13:09:50 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-04-08 13:09:50 +0000 |
commit | d4e7ce1e524939268d9df0a289482917cda352b5 (patch) | |
tree | 664ea74d975716169ccfc98d6bb8ba7523306f20 /ext/flac | |
parent | 661ddc65c3981aaa640ef9135eb35901f7861db1 (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.c | 7 |
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); |