From 4d1d6f7a3c0a8c9235a5b26c4c5347d23b9ae091 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Tue, 5 Apr 2011 10:53:50 +0200 Subject: [PATCH] Support s32 output via alsa audio device. --- libavdevice/alsa-audio-common.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c index ce1d75043a..bf22702792 100644 --- a/libavdevice/alsa-audio-common.c +++ b/libavdevice/alsa-audio-common.c @@ -36,6 +36,8 @@ static av_cold snd_pcm_format_t codec_id_to_pcm_format(int codec_id) { switch(codec_id) { + case CODEC_ID_PCM_S32LE: return SND_PCM_FORMAT_S32_LE; + case CODEC_ID_PCM_S32BE: return SND_PCM_FORMAT_S32_BE; case CODEC_ID_PCM_S16LE: return SND_PCM_FORMAT_S16_LE; case CODEC_ID_PCM_S16BE: return SND_PCM_FORMAT_S16_BE; case CODEC_ID_PCM_S8: return SND_PCM_FORMAT_S8; @@ -83,6 +85,8 @@ static void alsa_reorder_ ## NAME ## _out_71(const void *in_v, void *out_v, int REORDER_OUT_51(s16, int16_t) REORDER_OUT_71(s16, int16_t) +REORDER_OUT_51(s32, int32_t) +REORDER_OUT_71(s32, int32_t) #define REORDER_DUMMY ((void *)1) @@ -98,6 +102,12 @@ static av_cold ff_reorder_func find_reorder_func(int codec_id, layout == AV_CH_LAYOUT_7POINT1 ? out ? alsa_reorder_s16_out_71 : NULL : NULL : + codec_id == CODEC_ID_PCM_S32LE || codec_id == CODEC_ID_PCM_S32BE ? + layout == AV_CH_LAYOUT_5POINT1_BACK || layout == AV_CH_LAYOUT_5POINT1 ? + out ? alsa_reorder_s32_out_51 : NULL : + layout == AV_CH_LAYOUT_7POINT1 ? + out ? alsa_reorder_s32_out_71 : NULL : + NULL : NULL; }