Thanks, now what I see makes sense.<div><br></div><div>Paulo<br><br><div class="gmail_quote">On Wed, Feb 17, 2010 at 9:20 AM, Russell Bryant <span dir="ltr">&lt;<a href="mailto:russell@digium.com">russell@digium.com</a>&gt;</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 02/16/2010 01:07 PM, Paulo Garcia wrote:<br>
</div><div><div></div><div class="h5">&gt; Hi,<br>
&gt;<br>
&gt; I&#39;m analyzing the way the Monitor application works in Asterisk 1.4. At<br>
&gt; first it seems very simple, however the code in channel.c (__ast_read<br>
&gt; function around line 2390):<br>
&gt;<br>
&gt; int jump = chan-&gt;outsmpl - chan-&gt;insmpl - 4 * f-&gt;samples;<br>
&gt; if (jump&gt;= 0) {<br>
&gt; jump = chan-&gt;outsmpl - chan-&gt;insmpl;<br>
&gt; if (ast_seekstream(chan-&gt;monitor-&gt;read_stream, jump, SEEK_FORCECUR) == -1)<br>
&gt; ast_log(LOG_WARNING, &quot;Failed to perform seek in monitoring read stream,<br>
&gt; synchronization between the files may be broken\n&quot;);<br>
&gt; chan-&gt;insmpl += jump + f-&gt;samples;<br>
&gt; } else<br>
&gt; chan-&gt;insmpl+= f-&gt;samples;<br>
&gt;<br>
&gt; seems confusing to me. What is being done here?<br>
&gt;<br>
&gt; Is it a way to keep the in and out files synchronized? If yes, how does it<br>
&gt; work? Is it possible that one file can present chunks of silence (80ms long<br>
&gt; for example) if this way of the call doesn&#39;t receive samples in the same<br>
&gt; rate of the other?<br>
<br>
</div></div>You are correct.  This code is intended to keep the input and output<br>
files in sync.  It does the following:<br>
<br>
Is the number of output samples minus the number of input samples<br>
greater than 4 times the current frame size?  (Note that frames are<br>
usually 20ms, so an 80ms difference is where the sync would occur.)  If<br>
so, seek the input file forward by the amount of difference (as I said<br>
before, most likely at least 80ms).<br>
<div><div></div><div class="h5"><br>
<br>
--<br>
Russell Bryant<br>
Digium, Inc. | Engineering Manager, Open Source Software<br>
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA<br>
<a href="http://www.digium.com" target="_blank">www.digium.com</a> -=- <a href="http://www.asterisk.org" target="_blank">www.asterisk.org</a> -=- <a href="http://blogs.asterisk.org" target="_blank">blogs.asterisk.org</a><br>

<br>
--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--------------<br>Paulo Garcia<br>Pika Technologies Inc<br>
</div>