<font face="verdana, sans-serif" style="font-size:13px">Tim-Philipp, thanks for your quick and helpful reply. I'm glad I asked here first before starting to implement something. I will try your suggestion.</font><div style="font-family:arial,sans-serif;font-size:13px">
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">I'm also not sure if inserting a queue element right after the udp source is the right way to catch my problems with udp streaming. The actual problem I'm having is corrupted sound on playing a raw udp stream containing a transport stream consisting of H264 video and MPEG 1 layer 2 audio. The image is fine but the sound starts crackling after a while until it sometimes disappears completely until it plays fine again and repeats this in a cycle of 60 seconds.</font></div>
<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">As there is no buffering for live sources in playbin2, I'm suspecting this to be a problem. Why is there no facility in playbin2 to delay playback of a udp stream a bit to buffer it and handle possible packet delays? </font></div>
</div><div style="font-family:arial,sans-serif;font-size:13px"><font face="verdana, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="verdana, sans-serif">Best regards,</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="verdana, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="verdana, sans-serif">Christophe</font></div>
<div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Nov 13, 2012 at 3:09 PM, Tim-Philipp Müller <span dir="ltr"><<a href="mailto:t.i.m@zen.co.uk" target="_blank">t.i.m@zen.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, 2012-11-13 at 05:40 -0800, Christophe Oosterlynck wrote:<br>
<br>
> I'm looking to do the same thing. Right after the source, I want to insert<br>
> another element and let playbin2 do the rest.<br>
><br>
> From what I see I have 2 possibilities:<br>
> * react to "notify::source" signal, add the extra element to the bin, link<br>
> it to the source and let playbin2 continue<br>
> * wait until playbin2 has finished constructing the whole pipeline, unlink<br>
> source and next element and insert extra element in between.<br>
><br>
> Can I do one of these safely or shouldn't I fiddle with the playbin2<br>
> pipeline behind its back?<br>
><br>
> What I want to achieve with this: buffer a live udp source.<br>
> The buffering mechanism in playbin2 is not usable for live sources as you<br>
> cannot pause them. I want to insert a queue element right behind the udpsrc<br>
> element with min-threshold-bytes. This works when I create a custom pipeline<br>
> with gst-launch. If this is not the best way to handle this, let me know.<br>
> Nevertheless, I'm still interested in the answer to my question on fiddling<br>
> with the playbin2 pipeline.<br>
<br>
</div>You should not fiddle with playbin's pipeline, and certainly not link<br>
elements behind its back. It won't work. Even if it does work, it might<br>
stop working tomorrow. And we won't even feel bad for a second if your<br>
app breaks doing things like that ;)<br>
<br>
The only sane way to do things like this is to write your own element,<br>
which could be a GstBin subclass where you add some source and whatever<br>
additional elements you want and then create a ghost source pad. You can<br>
then register a new (or existing, if you must) URI protocol for it, so<br>
if you do playbin uri=fooudp://a.b.c.d:port it will plug your bin.<br>
<br>
Or you could try to come up with API for playbin to add such a thing,<br>
but I think would need to be rather well-justified and deemed<br>
interesting enough to be added.<br>
<br>
(What does your "routine" element do, "BCXA" ?)<br>
<br>
Cheers<br>
<span class="HOEnZb"><font color="#888888"> -Tim<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</div></div></blockquote></div><br></div>