GstCollectPads-related freeze in pads mgmt

Sebastian Dröge sebastian at centricular.com
Fri Jan 3 09:12:03 PST 2014


On Fr, 2014-01-03 at 18:49 +0200, Andrey Utkin wrote:
> 2014/1/3 Sebastian Dröge <sebastian at centricular.com>:

> >> > But you're right, the IDLE probes are either called from the "main
> >>
> >> You must have meant "BLOCKING" here.
> >
> > No, only IDLE probes can be called from the thread that calls
> > gst_pad_add_probe(). All others are called from the thread that triggers
> > the probe, which is the streaming thread for anything serialized.
> 
> Due to doc,
> GST_PAD_PROBE_TYPE_BLOCKING = GST_PAD_PROBE_TYPE_IDLE |
> GST_PAD_PROBE_TYPE_BLOCK.
> 
> Do you mean that IDLE probes MAY be called directly on stack, but also
> may be called on another thread? So IDLE is not a kind that is run
> ONLY on the thread calling gst_pad_add_probe.

Haha yes, BLOCKING vs. BLOCK is very confusing indeed :)

IDLE may be called directly from the thread calling gst_pad_add_probe()
if the pad is idle currently, but otherwise is called from the same
thread that a corresponding BLOCK probe would be called from too.

> Thanks for explanations, now i think i understand the matter more clearly.
> 
> Are there any future plans, possibly far, about simplifying API, so
> API user could avoid this callbacks stuff and just link or detach
> whatever they need, whenever they want? Or does such higher-level API
> exist already?

insertbin from gst-plugins-bad/gst-libs/gst/insert maybe. Not usable for
your use case though :)

There are no plans for simplifying this currently, simply because nobody
knows how to simplify it. If you have any suggestions please write them
down :)

> In my novice opinion, current GStreamer API is close to unthinkable,
> because a lot of things must be taken into consideration, and these
> things lack documentation and explanation.
> The learning curve is low at the beginning, you can make up and
> application very fast, but later you figure out that it is not quite
> stable. Or is it just me? :)

Depends on what you want to do ;) But yes, documentation is lacking a
bit in the area of dynamic pipelines.

-- 
Sebastian Dröge, Centricular Ltd - http://www.centricular.com
Expertise, Straight from the Source
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 966 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140103/99b7afc4/attachment.pgp>


More information about the gstreamer-devel mailing list