[gst-devel] Re: [gst-cvs] sebastien gst-plugins-good: gst-plugins-good/ gst-plugins-good/gst/matroska/ gst-plugins-good/win32/vs6/
Sébastien Moutte
sebastien at moutte.net
Sun Apr 23 09:00:05 CEST 2006
My bad.
I've just fixed it with
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));
Regards,
Sebastien
Tim Müller a écrit :
> 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