diff --git a/ChangeLog b/ChangeLog index 5b8d8c94d6..e5354347a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-04-23 Sebastien Moutte + + * 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 * 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 0458a98f97..8f6a146307 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)) {