pcm: 2nd round of pcm_misc DSD fixes

Functions 'snd_pcm_format_silence_64' and 'snd_pcm_format_size' also need to be
able to handle the DSD smaple format.

Changes from v1:
- Correct silence pattern for DSD

Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Jurgen Kramer 2014-08-22 10:15:10 +02:00 committed by Takashi Iwai
parent dfc3bf97bf
commit b9f58dcc6f

View file

@ -317,11 +317,13 @@ ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples)
switch (format) { switch (format) {
case SNDRV_PCM_FORMAT_S8: case SNDRV_PCM_FORMAT_S8:
case SNDRV_PCM_FORMAT_U8: case SNDRV_PCM_FORMAT_U8:
case SNDRV_PCM_FORMAT_DSD_U8:
return samples; return samples;
case SNDRV_PCM_FORMAT_S16_LE: case SNDRV_PCM_FORMAT_S16_LE:
case SNDRV_PCM_FORMAT_S16_BE: case SNDRV_PCM_FORMAT_S16_BE:
case SNDRV_PCM_FORMAT_U16_LE: case SNDRV_PCM_FORMAT_U16_LE:
case SNDRV_PCM_FORMAT_U16_BE: case SNDRV_PCM_FORMAT_U16_BE:
case SNDRV_PCM_FORMAT_DSD_U16_LE:
return samples * 2; return samples * 2;
case SNDRV_PCM_FORMAT_S18_3LE: case SNDRV_PCM_FORMAT_S18_3LE:
case SNDRV_PCM_FORMAT_S18_3BE: case SNDRV_PCM_FORMAT_S18_3BE:
@ -390,6 +392,9 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
return 0; return 0;
case SNDRV_PCM_FORMAT_U8: case SNDRV_PCM_FORMAT_U8:
return 0x8080808080808080ULL; return 0x8080808080808080ULL;
case SNDRV_PCM_FORMAT_DSD_U8:
case SNDRV_PCM_FORMAT_DSD_U16_LE:
return 0x6969696969696969ULL;
#ifdef SNDRV_LITTLE_ENDIAN #ifdef SNDRV_LITTLE_ENDIAN
case SNDRV_PCM_FORMAT_U16_LE: case SNDRV_PCM_FORMAT_U16_LE:
return 0x8000800080008000ULL; return 0x8000800080008000ULL;