[gst-devel] info about dynamic request pads

Luca Ognibene luca.ognibene at gmail.com
Tue Jan 20 09:44:50 CET 2009


More info of a segfault:
 * pipeline: http://people.freedesktop.org/~skaboy/76.svg
 * backtrace:  http://people.freedesktop.org/~skaboy/76.bt
 * GST_DEBUG info: http://people.freedesktop.org/~skaboy/76.log.bz2

Please tell me if you need more info.

Luca

On Mon, Jan 19, 2009 at 11:10 AM, Luca Ognibene <luca.ognibene at gmail.com> wrote:
> Hi, i would like to create a bin that works this way:
>  * a single sink pad
>  * src%d are request pad
>  * inside the bin i have the sink pad linked to a tee
>  * every time i request a pad i want my bin to create a "queue !
> identity" bin and attach it to the internal tee
>  * every time i release a pad i want my bin to stop the "queue !
> identity" bin and release the internal tee pad
>
> Everything work if the bin is in the NULL state but i have
> segfaults/hangs if the bin is in PLAYING state. I've tried to read
> part-block and other
> docs but i'm not able to fix this problem..
>
> I've implemented the bin this way:
>  * in _init the internal tee is created
>
>  * test app call bin.get_request_pad('src0')
>
>  * in _request_new_pad:
>   * get element state
>   * request a pad from internal tee
>   * block this pad if state is PLAYING
>   * add the "queue ! identity" bin
>   * create the ghost pad and set target to bin.src
>   * link tee request pad to bin.sink
>   * call sync_state_with_parent on the bin (is this ok? right now
> bin.src is not linked and the bin is in playing state)
>   * unblock tee request pad
>
>  * test app block received ghost pad
>  * add queue ! fakesink
>  * link them to ghost pad
>  * call sync_state_with_parent on queue and fakesink
>  * unblock ghost pad
>
> Problems:
>  * sometime (really often) program hangs on blocking ghost pad
>  * sometime (not very often) i have segfaults while queue is trying to
> fixate caps
>
> A strange thing is that if i change my bin to add "identity !
> identity" instead of "queue ! identity" everything works fine.. but i
> don't know why! And i need the queue there :)
>
> This is a svg graph of my pipeline after having received the ghost
> pad: http://people.freedesktop.org/~skaboy/test76-3.dot.svg
> I'm using gstreamer 0.10.21 (core).
>
> ciao
> Luca
>




More information about the gstreamer-devel mailing list