summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--gst/matroska/matroska-demux.c7
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b8d8c94..e5354347 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-04-23 Sebastien Moutte <sebastien@moutte.net>
+
+ * gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
+ Fix a bad conversion using gst_guint64_to_gdouble.
+ fabs ((gdouble) demux->index[entry].time - (gdouble) seek_pos) can not be
+ replaced by fabs (gst_guint64_to_gdouble (demux->index[entry].time - seek_pos)) as the
+ difference could be negative. fabs (gst_guint64_to_gdouble (demux->index[entry].time) -
+ gst_guint64_to_gdouble (seek_pos)) is the good solution. Thanks to Tim who has seen my
+ mistake.
+
2006-04-21 Sebastien Moutte <sebastien@moutte.net>
* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 0458a98f..8f6a1463 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -1043,9 +1043,10 @@ gst_matroskademux_do_index_seek (GstMatroskaDemux * demux, gint64 seek_pos,
for (n = 0; n < demux->num_indexes; ++n) {
gdouble d_entry, d_this;
- d_entry =
- fabs (gst_guint64_to_gdouble (demux->index[entry].time - seek_pos));
- d_this = fabs (gst_guint64_to_gdouble (demux->index[n].time - seek_pos));
+ d_entry = fabs (gst_guint64_to_gdouble (demux->index[entry].time) -
+ gst_guint64_to_gdouble (seek_pos));
+ d_this = fabs (gst_guint64_to_gdouble (demux->index[n].time) -
+ gst_guint64_to_gdouble (seek_pos));
if (d_this < d_entry &&
(demux->index[n].time < segment_stop || segment_stop == -1)) {