aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorRoger Mach <bigmach@us.ibm.com>2005-05-26 11:58:01 -0400
committerJaroslav Kysela <perex@suse.cz>2005-05-29 04:14:59 -0400
commitc3a9cfac750d78241b5dde7d004522f687703b90 (patch)
tree9d7245efcd1703a0f0ddf2b15b87c1aabac36e29 /sound/core
parent71fe7b82db923e0f71b05deeb54fce75d5a4d08d (diff)
[ALSA] pcm_oss - fix SNDCTL_DSP_GETOPTR not working correctly
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>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/oss/pcm_oss.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 6c8fdcaf9f4f..6f90dbb76804 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -124,11 +124,12 @@ int snd_pcm_plugin_append(snd_pcm_plugin_t *plugin)
124 124
125static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames) 125static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames)
126{ 126{
127 long bytes = 0;
127 snd_pcm_runtime_t *runtime = substream->runtime; 128 snd_pcm_runtime_t *runtime = substream->runtime;
128 snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream); 129 snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream);
129 frames = frames_to_bytes(runtime, frames); 130 bytes = frames_to_bytes(runtime, frames);
130 if (buffer_size == runtime->oss.buffer_bytes) 131 if (buffer_size == runtime->oss.buffer_bytes)
131 return frames; 132 return bytes;
132 return (runtime->oss.buffer_bytes * frames) / buffer_size; 133 return (runtime->oss.buffer_bytes * frames) / buffer_size;
133} 134}
134 135