<div dir="ltr">I'm writing a manager element (derived from GstBin) that, at the moment, contains only a source element, derived from GstBaseSrc and based heavily on GstFileSrc. I've confirmed the source works in a playbin with gst-launch, but I've run into a problem using it as the only child of my bin. The bin is a GstUriHandler and creates the child src when a URI is set. At that point it creates a ghost pad with the src's static pad as its target, and adds the ghost to the bin. But I get this error:<div><br></div><div><font face="monospace">(gjs:76527): GStreamer-CRITICAL **: 20:25:37.143: getrange on pad source:ts_src but it was not activated in pull mode</font> <br clear="all"><div><br></div><div>"ts_src" is the name of the ghost pad.</div><div><br></div><div>According to <a href="https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/scheduling.html?gi-language=c">the Different scheduling modes chapter of the plugin writer's guide</a> a pad can support pull mode if it has a get_range function, so I tried adding one to the ghost which calls gst_pad_get_range() on its target, but it didn't make any difference.</div><div> </div>The same page says push mode is the default and this can be changed by overriding the activate function, but the <a href="https://thiblahute.github.io/GStreamer-doc/libgstreamer-1.0/gstpad.html?gi-language=c#gst_pad_set_activate_function_full">API docs for gst_pad_set_activate_function_full</a> say: "Only makes sense to set on sink pads." So I don't think I can simply override the ghost pad's activate function. The ghost pad has a proxy pad in the reverse direction (a sink in this case), but that in turn has an unexplained internal pad, so I'm getting lost down a rabbit hole.</div><div><br></div><div>Can anybody help? I feel like this should just work, so is it actually a bug in ghost pads, or at least a known limitation? </div><div><br></div><div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr">TH<div><br></div></div></div></div></div>