[ALSA] pcm_oss - fix SNDCTL_DSP_GETOPTR not working correctly
authorRoger Mach <bigmach@us.ibm.com>
Thu, 26 May 2005 15:58:01 +0000 (17:58 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sun, 29 May 2005 08:14:59 +0000 (10:14 +0200)
ALSA<-OSS emulation
This patch changes snd_pcm_oss_bytes() by adding a local variable
for the frames -> bytes conversion, which means that the frame count
is no longer corrupted by this conversion.

Signed-off-by: Roger Mach <bigmach@us.ibm.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
sound/core/oss/pcm_oss.c

index 6c8fdcaf9f4f26a5758a829a0fb23abcc612ea50..6f90dbb7680465b2c4f169ac093c0f174a256a65 100644 (file)
@@ -124,11 +124,12 @@ int snd_pcm_plugin_append(snd_pcm_plugin_t *plugin)
 
 static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames)
 {
+       long bytes = 0;
        snd_pcm_runtime_t *runtime = substream->runtime;
        snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream);
-       frames = frames_to_bytes(runtime, frames);
+       bytes = frames_to_bytes(runtime, frames);
        if (buffer_size == runtime->oss.buffer_bytes)
-               return frames;
+               return bytes;
        return (runtime->oss.buffer_bytes * frames) / buffer_size;
 }