[Bug 786948] GstMessageType above GST_MESSAGE_EXTENDED not usable with python3 on windows

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Aug 28 21:55:37 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=786948

--- Comment #1 from Philippe Renon <philippe_renon at yahoo.fr> ---
GstMessageType above GST_MESSAGE_EXTENDED not usable with python3 on windows 

The following python3 code:

    import gi
    gi.require_version("Gst", "1.0")
    from gi.repository import Gst
    print(Gst.MessageType.get_name(Gst.MessageType.DEVICE_ADDED))

fails on windows 32 and 64 with this error:

    OverflowError: Python int too large to convert to C long

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "bug.py", line 4, in <module>
        print(Gst.MessageType.get_name(Gst.MessageType.DEVICE_ADDED))
    SystemError: gi.FunctionInfo(get_name) returned a result with an error set

The same is true for any GstMessageType above or equal to GST_MESSAGE_EXTENDED.

My understanding of the issue is that, something, somewhere, is trying to map
the Gst enum/flag to a C long.
On Windows, according to [1], a long is a signed 32 bit integer (range is
–2147483648 through 2147483647).
But GST_MESSAGE_EXTENDED (and above enums) are too big to fit a Windows C long.
GST_MESSAGE_EXTENDED = (1 << 31) = 2147483648 > 2147483647.

I found a somewhat similar issue :
https://bugzilla.gnome.org/show_bug.cgi?id=732633
But this issue is related to signed vs unsigned (and is fixed in 1.12.2).

Is that issue fixable ? If yes, where should I look : pyobject,
gobject-introspection, ... ?

This issue appears with GStreamer 1.12.2, gobject-introspection 1.52.1 and
pygobject 3.24.1 (which are all relatively recent) on a MSYS2 system.

[1]
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx

PS : gstmessage.h has this comment : /* FIXME: 2.0: Make it NOT flags, just a
regular 1,2,3,4.. enumeration */
Would be great to do ;) but would break ABI I guess...

-- 
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