summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2022-11-14 12:36:04 +0100
committerJaroslav Kysela <perex@perex.cz>2022-11-14 12:36:07 +0100
commit78b20e3caa7bba930095e05f3f8cbe665204fcfd (patch)
treee2f667792ed414c949e410a10cd273e188085733
parent152983f01b0bc1178ea0d461ebf66e2d2a8e2e02 (diff)
downloadalsa-lib-78b20e3caa7bba930095e05f3f8cbe665204fcfd.tar.gz
test: latency - use snd_pcm_format_physical_width()
We need to allocate frames using the physical size not the sample bit size. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--src/topology/ctl.c7
-rw-r--r--test/latency.c6
2 files changed, 9 insertions, 4 deletions
diff --git a/src/topology/ctl.c b/src/topology/ctl.c
index dd05424d..2c500ffc 100644
--- a/src/topology/ctl.c
+++ b/src/topology/ctl.c
@@ -17,9 +17,13 @@
Liam Girdwood <liam.r.girdwood@linux.intel.com>
*/
+#define ALSA_PCM_OLD_HW_PARAMS_API 1
+#define ALSA_PCM_OLD_SW_PARAMS_API 1
+#include "../../include/asoundlib.h"
#include "list.h"
#include "tplg_local.h"
+
#define ENUM_VAL_SIZE (SNDRV_CTL_ELEM_ID_NAME_MAXLEN >> 2)
struct ctl_access_elem {
@@ -71,7 +75,8 @@ static int parse_access_values(snd_config_t *cfg,
}
}
}
-
+ return snd_pcm_hw_params_get_channels(NULL);
+ //return snd_pcm_hw_params_get_access(NULL);
return 0;
}
diff --git a/test/latency.c b/test/latency.c
index 298bab8a..95b3c0ee 100644
--- a/test/latency.c
+++ b/test/latency.c
@@ -354,7 +354,7 @@ long readbuf(snd_pcm_t *handle, char *buf, long len, size_t *frames, size_t *max
}
// printf("read = %li\n", r);
} else {
- int frame_bytes = (snd_pcm_format_width(format) / 8) * channels;
+ int frame_bytes = (snd_pcm_format_physical_width(format) / 8) * channels;
do {
r = snd_pcm_readi(handle, buf, len);
if (r > 0) {
@@ -374,7 +374,7 @@ long readbuf(snd_pcm_t *handle, char *buf, long len, size_t *frames, size_t *max
long writebuf(snd_pcm_t *handle, char *buf, long len, size_t *frames)
{
long r;
- int frame_bytes = (snd_pcm_format_width(format) / 8) * channels;
+ int frame_bytes = (snd_pcm_format_physical_width(format) / 8) * channels;
while (len > 0) {
r = snd_pcm_writei(handle, buf, len);
@@ -579,7 +579,7 @@ int main(int argc, char *argv[])
loop_limit = loop_sec * rate;
latency = latency_min - 4;
- buffer = malloc((latency_max * snd_pcm_format_width(format) / 8) * 2);
+ buffer = malloc((latency_max * snd_pcm_format_physical_width(format) / 8) * 2);
setscheduler();