Missing support for `G_TYPE_PTR_ARRAY` for callback returns
Currently, a signal callback that is meant to return a GPtrArray
is not handled.
In particular, it is not possible to use https://gstreamer.freedesktop.org/documentation/gst-editing-services/gestimeline.html?gi-language=c#GESTimeline::select-tracks-for-object in python. The signal expects a G_TYPE_PTR_ARRAY
return with full transfer.
E.g. if we try
import gi
from gi.repository import Gst
from gi.repository import GES
Gst.init(None)
GES.init()
# setting up
timeline = GES.Timeline.new()
track = GES.VideoTrack.new()
timeline.add_track(track)
layer = timeline.append_layer()
clip = GES.TestClip.new()
# the callback
def select_track(tl, clip, el):
return [track]
# connect
timeline.connect("select-tracks-for-object", select_track)
# adding the clip to the layer will call the connected callback
layer.add_clip(clip)
We get
TypeError: can't convert return value to desired type
TypeError: can't convert return value to desired type
I think this happens because pyg_value_from_pyobject_with_error
does not support the G_TYPE_PTR_ARRAY
type.