<font><font face="verdana,sans-serif">Hi,</font></font><div><font><font face="verdana,sans-serif"><br></font></font></div><div><font><font face="verdana,sans-serif">Only the sound of the stream is getting corrupted. Video plays smooth still. Can this still be explained by clock skew or stream data corruption? I would suspect to see corruption or frame drops in the video too. So there is never a queue (buffering) needed to play a live udp stream?</font></font></div>

<div><font><font face="verdana,sans-serif"><br></font></font></div><div><font><font face="verdana,sans-serif">Do you have more information on the gio performance issue? Could I find out somehow that my system is affected?</font></font></div>

<div><font><font face="verdana,sans-serif"><br></font></font></div><div><font><font face="verdana,sans-serif">GStreamer version:</font></font></div><div><font><font face="verdana,sans-serif">base: 0.10.36</font></font></div>

<div><font><font face="verdana,sans-serif">good: 0.10.31<br></font></font></div><div><font><font face="verdana,sans-serif">bad: </font></font><font face="verdana, sans-serif">0.10.23</font></div><div><font face="verdana, sans-serif">ugly: 0.10.19</font></div>

<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Best regards,</font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Christophe</font></div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 14, 2012 at 8:24 AM, Edward Hervey <span dir="ltr"><<a href="mailto:bilboed@gmail.com" target="_blank">bilboed@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi,<br>
<br>
  summary: this issue doesn't require a queue to fix the issue.<br>
<br>
  What version of GStreamer are you using ?<br>
<br>
  The "crackling" is most likely due to clock skew happening, or data<br>
stream getting corrupted.<br>
<br>
  Depending on the version of GStreamer you are using and the bitrate<br>
being used, you might want to increase the udpsrc socket buffer-size to<br>
a bigger value (buffer-size property).<br>
  Also note that there is a performance issue with the underlying system<br>
being used by udpsrc (gio) which is currently being fixed. On some<br>
systems it could cause packet drops (because we don't read out the data<br>
from the socket fast enough).<br>
<span class="HOEnZb"><font color="#888888"><br>
   Edward<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Tue, 2012-11-13 at 21:09 +0100, Christophe Oosterlynck wrote:<br>
> Tim-Philipp, thanks for your quick and helpful reply. I'm glad I asked<br>
> here first before starting to implement something. I will try your<br>
> suggestion.<br>
><br>
><br>
> I'm also not sure if inserting a queue element right after the udp<br>
> source is the right way to catch my problems with udp streaming. The<br>
> actual problem I'm having is corrupted sound on playing a raw udp<br>
> stream containing a transport stream consisting of H264 video and MPEG<br>
> 1 layer 2 audio. The image is fine but the sound starts crackling<br>
> after a while until it sometimes disappears completely until it plays<br>
> fine again and repeats this in a cycle of 60 seconds.<br>
><br>
><br>
> As there is no buffering for live sources in playbin2, I'm suspecting<br>
> this to be a problem. Why is there no facility in playbin2 to delay<br>
> playback of a udp stream a bit to buffer it and handle possible packet<br>
> delays?<br>
><br>
><br>
> Best regards,<br>
><br>
><br>
> Christophe<br>
><br>
><br>
> On Tue, Nov 13, 2012 at 3:09 PM, Tim-Philipp Müller <<a href="mailto:t.i.m@zen.co.uk">t.i.m@zen.co.uk</a>><br>
> wrote:<br>
>         On Tue, 2012-11-13 at 05:40 -0800, Christophe Oosterlynck<br>
>         wrote:<br>
><br>
>         > I'm looking to do the same thing. Right after the source, I<br>
>         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<br>
>         the bin, link<br>
>         > it to the source and let playbin2 continue<br>
>         > * wait until playbin2 has finished constructing the whole<br>
>         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<br>
>         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<br>
>         sources as you<br>
>         > cannot pause them. I want to insert a queue element right<br>
>         behind the udpsrc<br>
>         > element with min-threshold-bytes. This works when I create a<br>
>         custom pipeline<br>
>         > with gst-launch. If this is not the best way to handle this,<br>
>         let me know.<br>
>         > Nevertheless, I'm still interested in the answer to my<br>
>         question on fiddling<br>
>         > with the playbin2 pipeline.<br>
><br>
><br>
>         You should not fiddle with playbin's pipeline, and certainly<br>
>         not link<br>
>         elements behind its back. It won't work. Even if it does work,<br>
>         it might<br>
>         stop working tomorrow. And we won't even feel bad for a second<br>
>         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<br>
>         element,<br>
>         which could be a GstBin subclass where you add some source and<br>
>         whatever<br>
>         additional elements you want and then create a ghost source<br>
>         pad. You can<br>
>         then register a new (or existing, if you must) URI protocol<br>
>         for it, so<br>
>         if you do playbin uri=fooudp://a.b.c.d:port it will plug your<br>
>         bin.<br>
><br>
>         Or you could try to come up with API for playbin to add such a<br>
>         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>
>           -Tim<br>
><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>
><br>
><br>
><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>
<br>
<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>