Problem with linking/unlinking a bin from a tee.

Robin gstreamerdeveloper at gmail.com
Tue Apr 10 07:38:48 PDT 2012


I create a pipeline containing the following components in order:

    UDP Source
    Queue
    RTPDepay
    Mpeg4Decoder
    VideoRate
    ColourSpaceConvert
    Tee

I then attach a bin to the Tee.  The bin is simply a queue followed by a DirectShow sink, i.e.:

    Queue
    DirectShowSink

I also attach a fake sink to the Tee so that the pipeline has somewhere to send data if the DirectShow sink isn't there:

    Queue
    FakeSink

This works fine and I see streaming video in the DirectShow window.  Now if I want to pause streaming, and for the sake of argument when I say pause streaming I mean continue the streaming underneath to a fake sink, but just freeze the display, I first pause the pipeline, then unlink the DirectShow bin and finally I remove the DirectShow bin from the pipeline.  Again, this works as expected, with the RTP stream's clock still counting upward, but the DirectShow window remaining static.

Now, when I want to get the DirectShow window displaying again, linking it back into the pipeline, I assume I just need to pause the pipeline, add the DirectShow bin to the pipeline and then link it to the Tee again.  However unlike the first time I linked it, this time it gives me an error:

    0:01:47.192718000  5288   08CF9038 INFO GST_ELEMENT_PADS gstutils.c:1614:gst_element_link_pads_full: trying to link element gStreamerBinStreamRTP_tee:(any) to element gStreamerBinDirectShow_queue:(any)
    0:01:47.196718000  5288   08CF9038 INFO GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad gStreamerBinDirectShow_queue:sink
    0:01:47.196718000  5288   08CF9038 INFO GST_ELEMENT_PADS gstutils.c:1221:gst_element_get_compatible_pad:<gStreamerBinDirectShow_queue> Could not find a compatible pad to link to gStreamerBinStreamRTP_tee:src1

This is odd because obviously the first time it tried to link it was quite happy, i..e:

    0:00:15.019501000  5288   00331AD0 INFO GST_ELEMENT_PADS gstutils.c:1614:gst_element_link_pads_full: trying to link element gStreamerBinStreamRTP_tee:(any) to element gStreamerBinDirectShow_queue:(any)
    0:00:15.030502000  5288   00331AD0 INFO GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<gStreamerBinStreamRTP_tee> adding pad 'src1'
    0:00:15.031503000  5288   00331AD0 INFO GST_PADS gstutils.c:1520:prepare_link_maybe_ghosting: gStreamerBinStreamRTP_tee and gStreamerBinDirectShow_queue not in same bin, making ghost pads

So, where am I going wrong here?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20120410/26277630/attachment.html>


More information about the gstreamer-devel mailing list