[alsa-devel] [PATCH] Fix DSD formats userland usability

Takashi Iwai tiwai at suse.de
Sun Aug 10 13:44:38 CEST 2014


At Sat,  9 Aug 2014 12:09:21 +0200,
Jurgen Kramer wrote:
> 
> Support for DSD sample formats has been added a while ago. This patch makes
> those sample formats beter usable from userland (e.g. aplay).
> 
> ---
>  include/sound/asound.h | 4 +++-
>  src/pcm/pcm_misc.c     | 4 ++++

The new definitions are still missing in include/pcm.h?
include/sound/asound.h is a copy from the kernel, and the user-land
API is defined rather in include/pcm.h.


thanks,

Takashi

>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/include/sound/asound.h b/include/sound/asound.h
> index c819df4..5194524 100644
> --- a/include/sound/asound.h
> +++ b/include/sound/asound.h
> @@ -214,7 +214,9 @@ typedef int __bitwise snd_pcm_format_t;
>  #define	SNDRV_PCM_FORMAT_G723_24_1B	((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */
>  #define	SNDRV_PCM_FORMAT_G723_40	((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */
>  #define	SNDRV_PCM_FORMAT_G723_40_1B	((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
> -#define	SNDRV_PCM_FORMAT_LAST		SNDRV_PCM_FORMAT_G723_40_1B
> +#define SNDRV_PCM_FORMAT_DSD_U8		((__force snd_pcm_format_t) 48) /* 8 1-bit samples in 1 byte */
> +#define SNDRV_PCM_FORMAT_DSD_U16_LE	((__force snd_pcm_format_t) 49) /* 16 1-bit samples in 2 bytes */
> +#define	SNDRV_PCM_FORMAT_LAST		SNDRV_PCM_FORMAT_DSD_U16_LE
>  
>  #ifdef SNDRV_LITTLE_ENDIAN
>  #define	SNDRV_PCM_FORMAT_S16		SNDRV_PCM_FORMAT_S16_LE
> diff --git a/src/pcm/pcm_misc.c b/src/pcm/pcm_misc.c
> index d52160c..44bb89c 100644
> --- a/src/pcm/pcm_misc.c
> +++ b/src/pcm/pcm_misc.c
> @@ -195,11 +195,13 @@ int snd_pcm_format_width(snd_pcm_format_t format)
>  	switch (format) {
>  	case SNDRV_PCM_FORMAT_S8:
>  	case SNDRV_PCM_FORMAT_U8:
> +	case SNDRV_PCM_FORMAT_DSD_U8:
>  		return 8;
>  	case SNDRV_PCM_FORMAT_S16_LE:
>  	case SNDRV_PCM_FORMAT_S16_BE:
>  	case SNDRV_PCM_FORMAT_U16_LE:
>  	case SNDRV_PCM_FORMAT_U16_BE:
> +	case SNDRV_PCM_FORMAT_DSD_U16_LE:
>  		return 16;
>  	case SNDRV_PCM_FORMAT_S18_3LE:
>  	case SNDRV_PCM_FORMAT_S18_3BE:
> @@ -253,11 +255,13 @@ int snd_pcm_format_physical_width(snd_pcm_format_t format)
>  	switch (format) {
>  	case SNDRV_PCM_FORMAT_S8:
>  	case SNDRV_PCM_FORMAT_U8:
> +	case SNDRV_PCM_FORMAT_DSD_U8:
>  		return 8;
>  	case SNDRV_PCM_FORMAT_S16_LE:
>  	case SNDRV_PCM_FORMAT_S16_BE:
>  	case SNDRV_PCM_FORMAT_U16_LE:
>  	case SNDRV_PCM_FORMAT_U16_BE:
> +	case SNDRV_PCM_FORMAT_DSD_U16_LE:
>  		return 16;
>  	case SNDRV_PCM_FORMAT_S18_3LE:
>  	case SNDRV_PCM_FORMAT_S18_3BE:
> -- 
> 1.9.3
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list