diff options
author | Jaroslav Kysela <perex@perex.cz> | 2022-11-14 12:36:04 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2022-11-14 12:36:07 +0100 |
commit | 78b20e3caa7bba930095e05f3f8cbe665204fcfd (patch) | |
tree | e2f667792ed414c949e410a10cd273e188085733 | |
parent | 152983f01b0bc1178ea0d461ebf66e2d2a8e2e02 (diff) | |
download | alsa-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.c | 7 | ||||
-rw-r--r-- | test/latency.c | 6 |
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(); |