Update of /cvsroot/alsa/alsa-kernel/core
In directory sc8-pr-cvs1:/tmp/cvs-serv15584

Modified Files:
        pcm_lib.c pcm_native.c 
Log Message:
Fixed silence behaviour

Index: pcm_lib.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/core/pcm_lib.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- pcm_lib.c   7 Jul 2003 23:08:09 -0000       1.42
+++ pcm_lib.c   22 Jul 2003 18:43:18 -0000      1.43
@@ -60,13 +60,11 @@
                        return;
                snd_assert(runtime->silence_filled <= runtime->buffer_size, return);
                noise_dist = snd_pcm_playback_hw_avail(runtime) + 
runtime->silence_filled;
-               if (noise_dist > (snd_pcm_sframes_t) runtime->silence_threshold)
+               if (noise_dist >= (snd_pcm_sframes_t) runtime->silence_threshold)
                        return;
                frames = runtime->silence_threshold - noise_dist;
                if (frames > runtime->silence_size)
                        frames = runtime->silence_size;
-               else
-                       frames = runtime->silence_threshold;
        } else {
                if (new_hw_ptr == ULONG_MAX) {  /* initialization */
                        runtime->silence_filled = 0;
@@ -86,10 +84,9 @@
                        if ((snd_pcm_sframes_t)runtime->silence_start < 0)
                                runtime->silence_start += runtime->boundary;
                }
-               frames = runtime->buffer_size;
+               frames = runtime->buffer_size - runtime->silence_filled;
        }
-       snd_assert(frames >= runtime->silence_filled, return);
-       frames -= runtime->silence_filled;
+       snd_assert(frames <= runtime->buffer_size, return);
        if (frames == 0)
                return;
        ofs = (runtime->silence_start + runtime->silence_filled) % 
runtime->buffer_size;

Index: pcm_native.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/core/pcm_native.c,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- pcm_native.c        3 Jun 2003 18:27:51 -0000       1.76
+++ pcm_native.c        22 Jul 2003 18:43:18 -0000      1.77
@@ -461,9 +461,15 @@
        if (params->xfer_align == 0 ||
            params->xfer_align % runtime->min_align != 0)
                return -EINVAL;
-       if ((params->silence_threshold != 0 || params->silence_size < 
runtime->boundary) &&
-           (params->silence_threshold + params->silence_size > runtime->buffer_size))
-               return -EINVAL;
+       if (params->silence_size >= runtime->boundary) {
+               if (params->threshold != 0)
+                       return -EINVAL;
+       } else {
+               if (params->silence_size > params->silence_threshold)
+                       return -EINVAL;
+               if (params->silence_threshold > runtime->buffer_size)
+                       return -EINVAL;
+       }
        snd_pcm_stream_lock_irq(substream);
        runtime->tstamp_mode = params->tstamp_mode;
        runtime->sleep_min = params->sleep_min;



-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to