<br><br><div class="gmail_quote">2010/4/27 Olivier Crête <span dir="ltr">&lt;<a href="mailto:olivier.crete@collabora.co.uk">olivier.crete@collabora.co.uk</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Mon, 2010-04-26 at 18:49 -0500, pl bossart wrote:<br>
&gt; &gt; Oops, I though rtpjitterbuffer would generate a lost packet message<br>
&gt; &gt; after a certain amount of time, but it seems to only generate it on the<br>
&gt; &gt; next packet after a gap. So you are right, it is not a good solution.<br>
&gt;<br>
&gt; I am not sure if this is the same mechanism, but the g72xdepay<br>
&gt; elements mark the first buffer after a talk burst as DISCONT as per<br>
&gt; the RTP spec. However this is somewhat unusable for the decoder since<br>
&gt; there are no indicators of the start of the silence part...<br>
<br>
</div>I don&#39;t think the decoder should be generating CNG without getting a SID<br>
frame, otherwise we may end up getting CN when we really had packet<br>
loss.</blockquote><div><br>The effect may not be that bad, but what to do in case of packet loss is generally unspecified. In a sci-fi scenario we could even generate in such a case a comfort noise with a spectrum similar to the one of the last n packets received (so that for a 10ms loss the user will not even perceive a loss of quality). Indeed it&#39;s definitely OT with the current thread and in some cases it&#39;s not something we really want in.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">So the start isn&#39;t too hard to guess. The problem is that the<br>
every decoder then needs to have a thread started when a CN packet is<br>
received that will generate the frames until it is stopped. And then the<br>
decoder may not know it should really stop if the use switched codecs<br>
during a silence period.<br></blockquote><div><br>I would like to move the feature outside the decoder, as I was proposing in my original email I was thinking to something like the dtmf generator.  The bin can be controlled from the depayloader / decoder through well defined APIs (properties? events?). This way we have a unique control point for the extra-source with all the benefits coming from that like e.g. code re-usability (and we know a bad implementation may make the thread run forever, using unexpected CPU/power, etc).<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
&gt;<br>
&gt; &gt; I still think we need some kind of arbitration to not have more than one<br>
&gt; &gt; decoder produce silence since Farsight2 will keep the previous decoders<br>
&gt; &gt; if the sender starts sending on a new PT. That&#39;s why I wanted to do it<br>
&gt; &gt; as late as possible (in the mixer).<br>
&gt;<br>
&gt; Comfort Noise is generated mainly so that the receiver doesn&#39;t think<br>
&gt; the line is dead. Granted, if this is a multi-party call the need for<br>
&gt; CNG is less important. Chances are someone will be talking.<br>
&gt; Nevertheless, the decision to go to SID frames is made by each<br>
&gt; transmitter, the receiver can&#39;t do much in terms of arbitration:<br>
&gt; either you support CNG or you don&#39;t....<br>
<br>
</div>I guess maybe the decoder could just set GST_BUFFER_FLAG_GAP<br>
on the CNG buffers. Then the mixer can be made to ignore buffers that<br>
have this flag set.<br></blockquote><div><br>The external bin may act as a control point here: given n &quot;registered&quot; decoders/depayloaders it may be coded to generate CN only when they&#39;ve all received the SID packet sending it the appropriate message.<br>
<br>Regards<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5"><br>
<br>
--<br>
Olivier Crête<br>
<a href="mailto:olivier.crete@collabora.co.uk">olivier.crete@collabora.co.uk</a><br>
</div></div><br>------------------------------------------------------------------------------<br>
<br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br>