[gstreamer-bugs] [Bug 628174] New: New gstvalue checks cause trouble in thoggen

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Aug 27 19:17:26 PDT 2010


https://bugzilla.gnome.org/show_bug.cgi?id=628174
  GStreamer | gstreamer (core) | git

           Summary: New gstvalue checks cause trouble in thoggen
    Classification: Desktop
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: thaytan at mad.scientist.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


I tried to rip a DVD last night, and got an assertion in
gst_value_set_fraction_range() at:

  g_return_if_fail (((gdouble) start->data[0].v_int) /
      ((gdouble) start->data[1].v_int) <
      ((gdouble) end->data[0].v_int) / ((gdouble) end->data[1].v_int));

This check was introduced in:

commit 4d8320e4c66e4b58d78ddff97b63f3ece46327ce
Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Mon Jun 14 15:30:08 2010 +0200

    gstvalue: Add some more assertions and checks for valid input parameters


I don't understand the failure. start has a strange value, but the result
should still meet the check. I suspect the problem comes from the 'double'
calculation calculating strangely because the values are right up at the int32
limits. In any case, doing double calcs in the fraction paths seems like a bad
idea - so far, we've managed to largely avoid floating point operations except
for the rate params.

(gdb) print *start
$1 = {g_type = 1601467239, data = {{v_int = 1970037110, v_uint = 1970037110, 
      v_long = 1970037110, v_ulong = 1970037110, 
      v_int64 = 7310291509518819702, v_uint64 = 7310291509518819702, 
      v_float = 2.99648145e+32, v_double = 5.0241924449441303e+180, 
      v_pointer = 0x756c6176}, {v_int = 1919311732, v_uint = 1919311732, 
      v_long = 1919311732, v_ulong = 1919311732, 
      v_int64 = 7598807741463158644, v_uint64 = 7598807741463158644, 
      v_float = 4.56300467e+30, v_double = 9.7538516110743229e+199, 
      v_pointer = 0x72665f74}}}
(gdb) print *end
$2 = {g_type = 224, data = {{v_int = 2147483647, v_uint = 2147483647, 
      v_long = 2147483647, v_ulong = 2147483647, v_int64 = 2147483647, 
      v_uint64 = 2147483647, v_float = nan(0x7fffff), 
      v_double = 1.0609978949885705e-314, v_pointer = 0x7fffffff}, {v_int = 1, 
      v_uint = 1, v_long = 1, v_ulong = 1, v_int64 = 1, v_uint64 = 1, 
      v_float = 1.40129846e-45, v_double = 4.9406564584124654e-324, 
      v_pointer = 0x1}}}

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.



More information about the Gstreamer-bugs mailing list