]> git.alsa-project.org Git - alsa-lib.git/commitdiff
test: latency - use snd_pcm_format_physical_width()
authorJaroslav Kysela <perex@perex.cz>
Mon, 14 Nov 2022 11:36:04 +0000 (12:36 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 14 Nov 2022 11:36:07 +0000 (12:36 +0100)
We need to allocate frames using the physical size not
the sample bit size.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/topology/ctl.c
test/latency.c

index dd05424d30764b763eb2196da0adba7482f2bca8..2c500ffce03620c987c18f19cd1e5ef3202b28e2 100644 (file)
            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;
 }
 
index 298bab8ad8ff31108cbb25e87556094a188b8d70..95b3c0eefaf2b3441852e71df82eff6dfee5703e 100644 (file)
@@ -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();