2019-03-25 15:15:34

by Timo Wischer

[permalink] [raw]
Subject: [PATCH] ALSA: aloop: Support S24 sample formats

From: Timo Wischer <[email protected]>

Currently snd_aloop supports only S16 and S32 audio sample formats. With
this patch the S24 formats are also supported.

Signed-off-by: Timo Wischer <[email protected]>
---
sound/drivers/aloop.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c
index 8c3fbe1..c14e57b 100644
--- a/sound/drivers/aloop.c
+++ b/sound/drivers/aloop.c
@@ -337,7 +337,7 @@ static int loopback_prepare(struct snd_pcm_substream *substream)

loopback_timer_stop_sync(dpcm);

- salign = (snd_pcm_format_width(runtime->format) *
+ salign = (snd_pcm_format_physical_width(runtime->format) *
runtime->channels) / 8;
bps = salign * runtime->rate;
if (bps <= 0 || salign <= 0)
@@ -562,6 +562,8 @@ static const struct snd_pcm_hardware loopback_pcm_hardware =
SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE |
SNDRV_PCM_INFO_RESUME),
.formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |
+ SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |
+ SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |
SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |
SNDRV_PCM_FMTBIT_FLOAT_LE | SNDRV_PCM_FMTBIT_FLOAT_BE),
.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000,
--
2.7.4



2019-03-25 15:40:48

by Takashi Iwai

[permalink] [raw]
Subject: Re: [ALSA patch] [PATCH] ALSA: aloop: Support S24 sample formats

On Mon, 25 Mar 2019 16:35:20 +0100,
Jaroslav Kysela wrote:
>
> Dne 25. 03. 19 v 16:14 [email protected] napsal(a):
> > From: Timo Wischer <[email protected]>
> >
> > Currently snd_aloop supports only S16 and S32 audio sample formats. With
> > this patch the S24 formats are also supported.
>
> Reviewed-by: Jaroslav Kysela <[email protected]>
>
> >
> > Signed-off-by: Timo Wischer <[email protected]>

Applied now, thanks.


Takashi

2019-03-25 15:44:28

by Jaroslav Kysela

[permalink] [raw]
Subject: Re: [PATCH] ALSA: aloop: Support S24 sample formats

Dne 25. 03. 19 v 16:14 [email protected] napsal(a):
> From: Timo Wischer <[email protected]>
>
> Currently snd_aloop supports only S16 and S32 audio sample formats. With
> this patch the S24 formats are also supported.

Reviewed-by: Jaroslav Kysela <[email protected]>

>
> Signed-off-by: Timo Wischer <[email protected]>
> ---
> sound/drivers/aloop.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c
> index 8c3fbe1..c14e57b 100644
> --- a/sound/drivers/aloop.c
> +++ b/sound/drivers/aloop.c
> @@ -337,7 +337,7 @@ static int loopback_prepare(struct snd_pcm_substream *substream)
>
> loopback_timer_stop_sync(dpcm);
>
> - salign = (snd_pcm_format_width(runtime->format) *
> + salign = (snd_pcm_format_physical_width(runtime->format) *
> runtime->channels) / 8;
> bps = salign * runtime->rate;
> if (bps <= 0 || salign <= 0)
> @@ -562,6 +562,8 @@ static const struct snd_pcm_hardware loopback_pcm_hardware =
> SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE |
> SNDRV_PCM_INFO_RESUME),
> .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |
> + SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |
> + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |
> SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |
> SNDRV_PCM_FMTBIT_FLOAT_LE | SNDRV_PCM_FMTBIT_FLOAT_BE),
> .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000,
>


--
Jaroslav Kysela <[email protected]>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.