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
