gst-python 1.17 breaks API for Gst.Buffer.map() and Gst.Memory.map()
Run the following script without gst-python 1.17.2 installed
#!/usr/bin/python3
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstPbutils', '1.0')
from gi.repository import Gst, GstPbutils, GLib, Gio
Gst.init(None)
buf = Gst.Buffer.new()
res, info = buf.map(Gst.MapFlags.READ)
print(f"{res=} {info=}")
Output is
res=True info=<Gst.MapInfo object at 0x7f0fdbcac400 (void at 0x191d5e0)>
Now install gst-python 1.17.2 and you get
Traceback (most recent call last):
File "gst-python-api.py", line 12, in <module>
res, info = buf.map(Gst.MapFlags.READ)
The reason is that the override for Gst.Buffer.map() now returns just the (also overridden) MapInfo (instead of a tuple). (The strange error message is caused by the tuple on the LHS of the assignment, Python tries to unpack the MapInfo by iterating over it, but isn't an iterator.)
This used to work in gst-python 1.16.x.