[wdmaudiodev] Re: GFX/LFX fullduplex support.

  • From: Wayne <brocean@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 8 Sep 2008 14:12:22 +0800

Hi pete,
    Did you do any synchronization to prevent data race, or to
maintain data consistency, e.g. available data length in the buffer?


On 9/6/08, pete c <prchan_0779@xxxxxxxxx> wrote:
> Tim,
>  >>>How are you sending the data from the render end back to the capture
> end?
> The GFX-render side allocates a share memory mapped file which is used as a
> circular buffer for the LFX-capture side to exchange render data.
> The GFX-render side maintains a current write buffer pointer that it uses to
> write render data to (then increments when written to) and the LFX-capture
> side maintains a current read buffer pointer to read the render data from
> (then increments when read from).
> As of right now the current circular buffer contains 10 buffers(so a total
> of 100 ms of buffering) and the GFX-render write buffer pointer maintains a
> spacing of 2 buffers behind the LFX-catpure read buffer pointer.
> So for example on my laptop there is a service that runs every minute that
> is related to the WLAN, when enabled the LFX-capture read buffer pointer
> catches up with the GFX-render write buffer pointer, which leads me to
> assume that the GFX has been delayed, while the LFX continues to run ahead
> of the GFX allowing the read and write buffer pointers to meet.
> When this WLAN service is diabled everything runs smoothly and the
> read/write pointers maintain a ~2 buffer spacing and never meet. The same
> skewing situation happens when i insert a USB jump drive into my laptop.
> The GFX/LFX should be running in ~10ms intervals, which is set by the OS?
> --- On Fri, 9/5/08, Tim Roberts <timr@xxxxxxxxx> wrote:
> From: Tim Roberts <timr@xxxxxxxxx>
> Subject: [wdmaudiodev] Re: GFX/LFX fullduplex support.
> To: wdmaudiodev@xxxxxxxxxxxxx
> Date: Friday, September 5, 2008, 12:10 PM
> pete c wrote:
> ive been experiementing with a GFX-render and an LFX-capture APO framework,
> they run smoothly with not much going on in the Vista OS background; however
> once other apps/services begin running simultaneously the GFX/LFX drift is
> much more drastic almost as if higher priority tasks in Vista are prempting
> the GFX-render process; and the LFX-capture begins to overrun the GFX-render
> side which is not good for AEC. Is there anyway to set kernel priorities to
> the GFX/LFX processes (like in an RTOS) or does this depend on the parent
> Audio Graph process priority level?
> The audio graph runs in a separate system process, and already runs at a
> raised priority.  Besides, you should know that raising the priority won't
> solve the problem.  It just delays it.
> You need to be able to handle this skew.
> How are you sending the data from the render end back to the capture end?
> --
> Tim Roberts, timr@xxxxxxxxx
> Providenza & Boekelheide, Inc.

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx


Other related posts: