mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-04 13:30:08 -05:00
Avoided useless writev use
This commit is contained in:
parent
a2932a8f52
commit
2c07d4f1ea
2 changed files with 9 additions and 16 deletions
|
|
@ -57,9 +57,7 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin,
|
||||||
if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0)
|
if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0)
|
||||||
return result;
|
return result;
|
||||||
if (plugin->src_format.interleave) {
|
if (plugin->src_format.interleave) {
|
||||||
vec->iov_base = src_voices->addr;
|
result = snd_pcm_write(plugin->handle, src_voices->addr, result);
|
||||||
vec->iov_len = result;
|
|
||||||
count = 1;
|
|
||||||
} else {
|
} else {
|
||||||
count = plugin->src_format.voices;
|
count = plugin->src_format.voices;
|
||||||
result /= count;
|
result /= count;
|
||||||
|
|
@ -67,8 +65,8 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin,
|
||||||
vec[voice].iov_base = src_voices[voice].addr;
|
vec[voice].iov_base = src_voices[voice].addr;
|
||||||
vec[voice].iov_len = result;
|
vec[voice].iov_len = result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
result = snd_pcm_writev(plugin->handle, vec, count);
|
result = snd_pcm_writev(plugin->handle, vec, count);
|
||||||
|
}
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
return result;
|
return result;
|
||||||
return snd_pcm_plugin_src_size_to_samples(plugin, result);
|
return snd_pcm_plugin_src_size_to_samples(plugin, result);
|
||||||
|
|
@ -78,9 +76,7 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin,
|
||||||
if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0)
|
if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0)
|
||||||
return result;
|
return result;
|
||||||
if (plugin->dst_format.interleave) {
|
if (plugin->dst_format.interleave) {
|
||||||
vec->iov_base = dst_voices->addr;
|
result = snd_pcm_read(plugin->handle, dst_voices->addr, result);
|
||||||
vec->iov_len = result;
|
|
||||||
count = 1;
|
|
||||||
} else {
|
} else {
|
||||||
count = plugin->dst_format.voices;
|
count = plugin->dst_format.voices;
|
||||||
result /= count;
|
result /= count;
|
||||||
|
|
@ -88,8 +84,8 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin,
|
||||||
vec[voice].iov_base = dst_voices[voice].addr;
|
vec[voice].iov_base = dst_voices[voice].addr;
|
||||||
vec[voice].iov_len = result;
|
vec[voice].iov_len = result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
result = snd_pcm_readv(plugin->handle, vec, count);
|
result = snd_pcm_readv(plugin->handle, vec, count);
|
||||||
|
}
|
||||||
return snd_pcm_plugin_dst_size_to_samples(plugin, result);
|
return snd_pcm_plugin_dst_size_to_samples(plugin, result);
|
||||||
} else {
|
} else {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,7 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin,
|
||||||
if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0)
|
if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0)
|
||||||
return result;
|
return result;
|
||||||
if (plugin->src_format.interleave) {
|
if (plugin->src_format.interleave) {
|
||||||
vec->iov_base = src_voices->addr;
|
result = snd_pcm_write(plugin->handle, src_voices->addr, result);
|
||||||
vec->iov_len = result;
|
|
||||||
count = 1;
|
|
||||||
} else {
|
} else {
|
||||||
count = plugin->src_format.voices;
|
count = plugin->src_format.voices;
|
||||||
result /= count;
|
result /= count;
|
||||||
|
|
@ -67,8 +65,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin,
|
||||||
vec[voice].iov_base = src_voices[voice].addr;
|
vec[voice].iov_base = src_voices[voice].addr;
|
||||||
vec[voice].iov_len = result;
|
vec[voice].iov_len = result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
result = snd_pcm_writev(plugin->handle, vec, count);
|
result = snd_pcm_writev(plugin->handle, vec, count);
|
||||||
|
}
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
return result;
|
return result;
|
||||||
return snd_pcm_plugin_src_size_to_samples(plugin, result);
|
return snd_pcm_plugin_src_size_to_samples(plugin, result);
|
||||||
|
|
@ -78,9 +76,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin,
|
||||||
if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0)
|
if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0)
|
||||||
return result;
|
return result;
|
||||||
if (plugin->dst_format.interleave) {
|
if (plugin->dst_format.interleave) {
|
||||||
vec->iov_base = dst_voices->addr;
|
result = snd_pcm_read(plugin->handle, dst_voices->addr, result);
|
||||||
vec->iov_len = result;
|
|
||||||
count = 1;
|
|
||||||
} else {
|
} else {
|
||||||
count = plugin->dst_format.voices;
|
count = plugin->dst_format.voices;
|
||||||
result /= count;
|
result /= count;
|
||||||
|
|
@ -88,8 +85,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin,
|
||||||
vec[voice].iov_base = dst_voices[voice].addr;
|
vec[voice].iov_base = dst_voices[voice].addr;
|
||||||
vec[voice].iov_len = result;
|
vec[voice].iov_len = result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
result = snd_pcm_readv(plugin->handle, vec, count);
|
result = snd_pcm_readv(plugin->handle, vec, count);
|
||||||
|
}
|
||||||
return snd_pcm_plugin_dst_size_to_samples(plugin, result);
|
return snd_pcm_plugin_dst_size_to_samples(plugin, result);
|
||||||
} else {
|
} else {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue