diff options
author | Roger Mach <bigmach@us.ibm.com> | 2005-05-26 11:58:01 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-05-29 04:14:59 -0400 |
commit | c3a9cfac750d78241b5dde7d004522f687703b90 (patch) | |
tree | 9d7245efcd1703a0f0ddf2b15b87c1aabac36e29 /sound | |
parent | 71fe7b82db923e0f71b05deeb54fce75d5a4d08d (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')
-rw-r--r-- | sound/core/oss/pcm_oss.c | 5 |
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 | ||
125 | static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames) | 125 | static 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 | ||