From: Stefan Hajnoczi <[email protected]>

Playback urbs use the index_out counter to decide which part of the
playback buffer to use.  Since the urb already has a unique index in
range [0, LINE6_ISO_BUFFERS) there is no need to keep a separate
counter.

Use the urb index instead.  This also eliminates the possibility of two
urbs using the same playback buffer space if they ever complete
out-of-order for some reason.

Signed-off-by: Stefan Hajnoczi <[email protected]>
---
 pcm.h      |    5 -----
 playback.c |    5 +----
 2 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/pcm.h b/pcm.h
index 77055b3..e41e981 100644
--- a/pcm.h
+++ b/pcm.h
@@ -149,11 +149,6 @@ struct snd_line6_pcm {
        unsigned char *buffer_in;
 
        /**
-                Temporary buffer index for playback.
-       */
-       int index_out;
-
-       /**
                 Previously captured frame (for software monitoring).
        */
        unsigned char *prev_fbuf;
diff --git a/playback.c b/playback.c
index f43f55b..add9537 100644
--- a/playback.c
+++ b/playback.c
@@ -192,13 +192,10 @@ static int submit_audio_out_urb(struct snd_line6_pcm 
*line6pcm)
        urb_frames = urb_size / bytes_per_frame;
        urb_out->transfer_buffer =
            line6pcm->buffer_out +
-           LINE6_ISO_PACKETS * line6pcm->max_packet_size * line6pcm->index_out;
+           index * LINE6_ISO_PACKETS * line6pcm->max_packet_size;
        urb_out->transfer_buffer_length = urb_size;
        urb_out->context = line6pcm;
 
-       if (++line6pcm->index_out == LINE6_ISO_BUFFERS)
-               line6pcm->index_out = 0;
-
        if (test_bit(BIT_PCM_ALSA_PLAYBACK, &line6pcm->flags) &&
            !test_bit(BIT_PAUSE_PLAYBACK, &line6pcm->flags)) {
                struct snd_pcm_runtime *runtime =
-- 
1.7.7.3


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Line6linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/line6linux-devel

Reply via email to