Any GstMessageType above GST_MESSAGE_EXTENDED not usable with python3 on windows

philippe renon philippe_renon at yahoo.fr
Mon Aug 28 12:45:24 UTC 2017


Hi,
Will file a bug when it is possible. I currently get a 500 when hitting the "Submit Bug" button.
In the meantime, I have been researching the code.
The OverflowError emanates from PyLong_AsLong(PyObject *obj) method (https://github.com/python/cpython/blob/3.6/Objects/longobject.c#L471)
But I am having a hard time finding the call path that leads to this method being called...

I should be able to build all components involved (gstreamer, gst-python, gobject-instrospection, pyobject) from source so I can try things out given some pointers or guidance.
Philippe. 

    Le Lundi 28 août 2017 11h34, Sebastian Dröge <sebastian at centricular.com> a écrit :
 

 On Sat, 2017-08-26 at 21:18 +0000, philippe renon wrote:
> Hi,
> 
> 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_bu
> g.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, ... ?

Please file a bug about this. It's probably not fixable without changes
in the Python bindings (by using an unsigned int here instead of a
signed one) or ABI changes on the GStreamer side.

-- 
Sebastian Dröge, Centricular Ltd · https://www.centricular.com_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170828/5c4dbaf3/attachment.html>


More information about the gstreamer-devel mailing list