mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-02 09:01:48 -05:00
pcm_dmix: add support for S24_LE format
From: Bart De Vos <bart_dv@eia.be> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
f171347508
commit
7fd0d9f423
4 changed files with 11 additions and 1 deletions
|
|
@ -888,6 +888,7 @@ int snd_pcm_direct_initialize_slave(snd_pcm_direct_t *dmix, snd_pcm_t *spcm, str
|
||||||
SND_PCM_FORMAT_S32 ^ SND_PCM_FORMAT_S32_LE ^ SND_PCM_FORMAT_S32_BE,
|
SND_PCM_FORMAT_S32 ^ SND_PCM_FORMAT_S32_LE ^ SND_PCM_FORMAT_S32_BE,
|
||||||
SND_PCM_FORMAT_S16,
|
SND_PCM_FORMAT_S16,
|
||||||
SND_PCM_FORMAT_S16 ^ SND_PCM_FORMAT_S16_LE ^ SND_PCM_FORMAT_S16_BE,
|
SND_PCM_FORMAT_S16 ^ SND_PCM_FORMAT_S16_LE ^ SND_PCM_FORMAT_S16_BE,
|
||||||
|
SND_PCM_FORMAT_S24_LE,
|
||||||
SND_PCM_FORMAT_S24_3LE,
|
SND_PCM_FORMAT_S24_3LE,
|
||||||
SND_PCM_FORMAT_U8,
|
SND_PCM_FORMAT_U8,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,10 @@ static void mix_areas(snd_pcm_direct_t *dmix,
|
||||||
sample_size = 4;
|
sample_size = 4;
|
||||||
do_mix_areas = (mix_areas_t *)dmix->u.dmix.mix_areas_32;
|
do_mix_areas = (mix_areas_t *)dmix->u.dmix.mix_areas_32;
|
||||||
break;
|
break;
|
||||||
|
case SND_PCM_FORMAT_S24_LE:
|
||||||
|
sample_size = 4;
|
||||||
|
do_mix_areas = (mix_areas_t *)dmix->u.dmix.mix_areas_24;
|
||||||
|
break;
|
||||||
case SND_PCM_FORMAT_S24_3LE:
|
case SND_PCM_FORMAT_S24_3LE:
|
||||||
sample_size = 3;
|
sample_size = 3;
|
||||||
do_mix_areas = (mix_areas_t *)dmix->u.dmix.mix_areas_24;
|
do_mix_areas = (mix_areas_t *)dmix->u.dmix.mix_areas_24;
|
||||||
|
|
@ -238,6 +242,10 @@ static void remix_areas(snd_pcm_direct_t *dmix,
|
||||||
sample_size = 4;
|
sample_size = 4;
|
||||||
do_remix_areas = (mix_areas_t *)dmix->u.dmix.remix_areas_32;
|
do_remix_areas = (mix_areas_t *)dmix->u.dmix.remix_areas_32;
|
||||||
break;
|
break;
|
||||||
|
case SND_PCM_FORMAT_S24_LE:
|
||||||
|
sample_size = 4;
|
||||||
|
do_remix_areas = (mix_areas_t *)dmix->u.dmix.remix_areas_24;
|
||||||
|
break;
|
||||||
case SND_PCM_FORMAT_S24_3LE:
|
case SND_PCM_FORMAT_S24_3LE:
|
||||||
sample_size = 3;
|
sample_size = 3;
|
||||||
do_remix_areas = (mix_areas_t *)dmix->u.dmix.remix_areas_24;
|
do_remix_areas = (mix_areas_t *)dmix->u.dmix.remix_areas_24;
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ static void mix_select_callbacks(snd_pcm_direct_t *dmix)
|
||||||
#define generic_dmix_supported_format \
|
#define generic_dmix_supported_format \
|
||||||
((1ULL << SND_PCM_FORMAT_S16_LE) | (1ULL << SND_PCM_FORMAT_S32_LE) |\
|
((1ULL << SND_PCM_FORMAT_S16_LE) | (1ULL << SND_PCM_FORMAT_S32_LE) |\
|
||||||
(1ULL << SND_PCM_FORMAT_S16_BE) | (1ULL << SND_PCM_FORMAT_S32_BE) |\
|
(1ULL << SND_PCM_FORMAT_S16_BE) | (1ULL << SND_PCM_FORMAT_S32_BE) |\
|
||||||
(1ULL << SND_PCM_FORMAT_S24_3LE) | \
|
(1ULL << SND_PCM_FORMAT_S24_LE) | (1ULL << SND_PCM_FORMAT_S24_3LE) | \
|
||||||
(1ULL << SND_PCM_FORMAT_U8))
|
(1ULL << SND_PCM_FORMAT_U8))
|
||||||
|
|
||||||
#include <byteswap.h>
|
#include <byteswap.h>
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@
|
||||||
#define i386_dmix_supported_format \
|
#define i386_dmix_supported_format \
|
||||||
((1ULL << SND_PCM_FORMAT_S16_LE) |\
|
((1ULL << SND_PCM_FORMAT_S16_LE) |\
|
||||||
(1ULL << SND_PCM_FORMAT_S32_LE) |\
|
(1ULL << SND_PCM_FORMAT_S32_LE) |\
|
||||||
|
(1ULL << SND_PCM_FORMAT_S24_LE) |\
|
||||||
(1ULL << SND_PCM_FORMAT_S24_3LE))
|
(1ULL << SND_PCM_FORMAT_S24_3LE))
|
||||||
|
|
||||||
#define dmix_supported_format \
|
#define dmix_supported_format \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue