[alsa-devel] [PATCH] improved snd-aloop quality when using certain samplerates and kernel HZ
Ahmet İnan
ainan at mathematik.uni-freiburg.de
Wed Feb 20 15:19:06 CET 2008
more cleanups.
removed some unneeded stuff.
patch is relative to current hg-tree.
http://www.mathematik.uni-freiburg.de/IAM/homepages/ainan/alsa-driver-hg-aloop-ainan-patch0.diff
Signed-off-by: Ahmet İnan <ainan <at> mathematik.uni-freiburg.de>
btw, my "nice" idea turned out to be a bitch, again. its really funny how
worse almoust always is better. :(
ahmet
--
admin der abteilung für angewandte mathematik, tel. 0761-203-5626
-------------- next part --------------
diff -r 4ce2c0f9f2ef drivers/aloop-kernel.c
--- a/drivers/aloop-kernel.c Wed Feb 20 12:46:42 2008 +0100
+++ b/drivers/aloop-kernel.c Wed Feb 20 15:05:16 2008 +0100
@@ -86,7 +86,6 @@ typedef struct snd_card_loopback_pcm {
unsigned int pcm_bps; /* bytes per second */
unsigned int pcm_hz; /* HZ */
unsigned int pcm_irq_pos; /* IRQ position */
- unsigned int pcm_buf_pos; /* position in buffer */
unsigned int pcm_period_pos; /* period aligned pos in buffer */
struct snd_pcm_substream *substream;
struct snd_card_loopback_cable *cable;
@@ -165,7 +164,6 @@ static int snd_card_loopback_prepare(str
dpcm->pcm_size = frames_to_bytes(runtime, runtime->buffer_size);
dpcm->pcm_count = frames_to_bytes(runtime, runtime->period_size);
dpcm->pcm_irq_pos = 0;
- dpcm->pcm_buf_pos = 0;
dpcm->pcm_period_pos = 0;
cable->hw.formats = (1ULL << runtime->format);
@@ -216,8 +214,6 @@ static void snd_card_loopback_timer_func
spin_lock_irq(&dpcm->lock);
dpcm->pcm_irq_pos += dpcm->pcm_bps;
- dpcm->pcm_buf_pos += dpcm->pcm_bps;
- dpcm->pcm_buf_pos %= dpcm->pcm_size * dpcm->pcm_hz;
if (dpcm->pcm_irq_pos >= dpcm->pcm_count * dpcm->pcm_hz) {
dpcm->pcm_irq_pos %= dpcm->pcm_count * dpcm->pcm_hz;
dpcm->pcm_period_pos += dpcm->pcm_count;
More information about the Alsa-devel
mailing list