|
@@ -124,13 +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);
|
|
|
- bytes = frames_to_bytes(runtime, frames);
|
|
|
+ frames = frames_to_bytes(runtime, frames);
|
|
|
if (buffer_size == runtime->oss.buffer_bytes)
|
|
|
- return bytes;
|
|
|
- return (runtime->oss.buffer_bytes * frames) / buffer_size;
|
|
|
+ return frames;
|
|
|
+ return (long)(((int64_t)runtime->oss.buffer_bytes * (int64_t)frames) / (int64_t)buffer_size);
|
|
|
}
|
|
|
|
|
|
static long snd_pcm_alsa_frames(snd_pcm_substream_t *substream, long bytes)
|