[gst-devel] Re: [gst-cvs] sebastien gst-plugins-good: gst-plugins-good/ gst-plugins-good/gst/matroska/ gst-plugins-good/win32/vs6/

Tim Müller t.i.m at zen.co.uk
Sat Apr 22 12:34:06 CEST 2006


On Sat, 2006-04-22 at 15:33 +0000, Sebastien Moutte wrote:

> CVS Root:       /cvs/gstreamer
> Module:         gst-plugins-good
> Changes by:     sebastien
> Date:           Sat Apr 22 2006  15:33:00 UTC
> 
> Log message:
> * gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
> Use gst_guint64_to_gdouble for conversions
>   ... 
> diff -u -d -r1.74 -r1.75
> --- matroska-demux.c	20 Apr 2006 13:23:40 -0000	1.74
> +++ matroska-demux.c	22 Apr 2006 15:32:47 -0000	1.75
> @@ -1043,8 +1043,9 @@
>      for (n = 0; n < demux->num_indexes; ++n) {
>        gdouble d_entry, d_this;
> -      d_entry = fabs ((gdouble) demux->index[entry].time - (gdouble) seek_pos);
> -      d_this = fabs ((gdouble) demux->index[n].time - (gdouble) seek_pos);
> +      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));
>        if (d_this < d_entry &&
>            (demux->index[n].time < segment_stop || segment_stop == -1)) {

If I'm not mistaken, this change will lead to completely wrong results,
as negative entry.time - seek_pos differences will be interpreted as
unsigned by gst_guint64_to_gdouble() and thus converted to very large
double values rather than negative double values.

Please revert or fix.

Cheers
 -Tim






More information about the gstreamer-devel mailing list