gst/matroska/matroska-demux.c: Fix a bad conversion using gst_guint64_to_gdouble...
authorSébastien Moutte <sebastien@moutte.net>
Sun, 23 Apr 2006 15:55:30 +0000 (15:55 +0000)
committerSébastien Moutte <sebastien@moutte.net>
Sun, 23 Apr 2006 15:55:30 +0000 (15:55 +0000)
Original commit message from CVS:
* 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.

ChangeLog
gst/matroska/matroska-demux.c

index 5b8d8c9..e535434 100644 (file)
--- 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):
index 0458a98..8f6a146 100644 (file)
@@ -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)) {