[gst-devel] Should element's iterated pads be unref'ed?

Alexey Chernov 4ernov at gmail.com
Mon Feb 14 20:47:55 CET 2011


On Sunday 13 February 2011 21:38:08 Luis de Bethencourt wrote:
> On Fri, Feb 11, 2011 at 9:11 PM, Alexey Chernov <4ernov at gmail.com> wrote:
> > On Tuesday 08 February 2011 21:12:27 you wrote:
> >> On Tue, 2011-02-08 at 15:26 +0300, 4ernov wrote:
> >> > What could be the problem? Maybe I should't unref pads after usage?
> >> > But in all the code snippets I've seen there's unref for every used
> >> > pad.
> >> 
> >> You probably need to check the result of gst_iterator_next right after
> >> you call it. Even if the result is DONE or ERROR you are still using the
> >> pad and unreferring it. Just use the example of GstIterator.
> > 
> > Thanks, Luciana. I searched for an example code with little success so
> > you reference is quite helpful. The problem actually went away as I
> > cleaned and recompiled the application but I'd better find out what the
> > reason was.
> > 
> > Thank you.
> 
> So what cleans did you make, do you still have the faulty code?

No, that time I meant only full rebuild and reinstall of the faulty code and 
it used to fix the problem. Now I fixed the code as you and Luciana suggested.

> Luciana's suggestion was something you should always do, check the
> function was successful before continuing.
> In some cases you might need to wait until an async Gst function
> finishes before doing anything related.

How can I implement this? Is it necessary to call _async function to ensure 
everything is blocked? The use case is to change pipeline branches dynamically 
after start of the playback.

> 
> Luis
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list