WRONG_HIERARCHY when both elements are in the same Pipeline

jimfcarroll jimfcarroll at gmail.com
Sat May 5 21:17:23 UTC 2018


Thanks.

The problem is GStreamer (or, my expectations). This is from gstpad.c:


Baby Octopus wrote
>   /* if the parents are the same, we have a loop */
>   if (G_UNLIKELY (psrc == psink))
>     goto same_parents;
> 
>   /* if they both have a parent, we check the grandparents. We can not
> lock
>    * the parent because we hold on the child (pad) and the locking order
> is
>    * parent >> child. */
>   psrc = GST_OBJECT_PARENT (psrc);
>   psink = GST_OBJECT_PARENT (psink);
> 
>   /* if they have grandparents but they are not the same */
>   if (G_UNLIKELY (psrc != psink))
>     goto wrong_grandparents;

IOW. The parents need to match exactly, or the grandparents need to match
exactly. PERIOD. It can't be that the parent of one matches the grandparent
of the other, or simply that they have a common ancestor (which is what I
expected). In my case, as you can see from the output, the GREAT-grandparent
of one is the pipeline and the grandparent of the other is the pipeline. 

Is there a reason for this other than the code above? Is there an
expectation in other places in the code that:

1) linked pads are on the same level of the Bin hierarchy
2) we only check up 2 levels for commonality

Thanks.




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list