[Gta04-owner] Speex echo cancelation now working?

Radek Polak psonek2 at seznam.cz
Sun Apr 22 00:38:12 CEST 2012


Hi Neil,
i finally got some time to look at this again.

> > I though i am reading from both of the cards in the beginning:
> >     while (!terminating) {
> >     
> >         if (route_stream_read(&r0)) { <==== internal
> 
> This read request (the first time through the loop) tells the sound device
> to
> start recording. It will collect samples for 32ms and then return the
> buffer with 256 frames it in.
> 
> >             blink_aux();
> >             continue;
> >         
> >         }
> >         
> >         rc = route_stream_read(&r1);  <==== umts
> 
> Now we tell the other sound device to start recording (When the first one
> has
> already been recording for 32ms).   It will collect samples for 32ms and
> then
> return a buffer with 256 frames in it.
> During this time the internal sound device was still recording and has
> another 32ms of sound buffered.  But we don't look at that yet.
> 
> So the time-of-recording of the two buffers we have at this point differ by
> 32ms.

i think the confusion here is how we are using the program. I guess you start 
it during the call but i am starting it before the call. Could it be?

You can try run it before the call is estabilished. Both recording stream 
should be started (red/green blinking AUX should indicate it) and the ages of 
both streams should be then the same age. Something like this:

delay r0=5 r1=22
delay r0=256 r1=260
delay r0=6 r1=23
delay r0=256 r1=260

Btw i think i already had it the same way as you suggest in some older version 
and i tried to use the  while (route_stream_read(&r1)); before starting the 
loop. But there is a problem that you sometimes hear some sounds (from 
previous calls or music?) at the beginning of phone call.

Regards

Radek


More information about the Gta04-owner mailing list