From ffc6c8a4305d25db8a5af72389a2453b17f43646 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 23 Jun 2011 16:49:51 +0200 Subject: Support u8, s8, alaw and mulaw channel reordering in alsa. --- libavdevice/alsa-audio-common.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libavdevice/alsa-audio-common.c') diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c index 38466a0..668ca02 100644 --- a/libavdevice/alsa-audio-common.c +++ b/libavdevice/alsa-audio-common.c @@ -115,6 +115,9 @@ static void alsa_reorder_ ## NAME ## _out_71(const void *in_v, void *out_v, int } \ } +REORDER_OUT_50(int8, int8_t) +REORDER_OUT_51(int8, int8_t) +REORDER_OUT_71(int8, int8_t) REORDER_OUT_50(int16, int16_t) REORDER_OUT_51(int16, int16_t) REORDER_OUT_71(int16, int16_t) @@ -132,6 +135,17 @@ static av_cold ff_reorder_func find_reorder_func(int codec_id, int out) { return + codec_id == CODEC_ID_PCM_U8 || codec_id == CODEC_ID_PCM_S8 || + codec_id == CODEC_ID_PCM_ALAW || codec_id == CODEC_ID_PCM_MULAW ? + layout == AV_CH_LAYOUT_QUAD || layout == AV_CH_LAYOUT_2_2 ? + REORDER_DUMMY : + layout == AV_CH_LAYOUT_5POINT0_BACK || layout == AV_CH_LAYOUT_5POINT0 ? + out ? alsa_reorder_int8_out_50 : NULL : + layout == AV_CH_LAYOUT_5POINT1_BACK || layout == AV_CH_LAYOUT_5POINT1 ? + out ? alsa_reorder_int8_out_51 : NULL : + layout == AV_CH_LAYOUT_7POINT1 ? + out ? alsa_reorder_int8_out_71 : NULL : + NULL : codec_id == CODEC_ID_PCM_U16LE || codec_id == CODEC_ID_PCM_U16BE || codec_id == CODEC_ID_PCM_S16LE || codec_id == CODEC_ID_PCM_S16BE ? layout == AV_CH_LAYOUT_QUAD || layout == AV_CH_LAYOUT_2_2 ? -- cgit v1.1