aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2011-04-14 01:20:11 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2011-04-14 03:33:10 +0200
commit460acdf059906da5d378a3414bb9053b401e484d (patch)
tree54127505262a952b003cb4260cc1f033a15d4c36
parente2049edb4e6663c658d888ae0cf3632607333e12 (diff)
downloadffmpeg-460acdf059906da5d378a3414bb9053b401e484d.tar.gz
Support alsa channel reordering for float.
-rw-r--r--libavdevice/alsa-audio-common.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
index 0e5b9974aa..ce27bcc074 100644
--- a/libavdevice/alsa-audio-common.c
+++ b/libavdevice/alsa-audio-common.c
@@ -121,6 +121,9 @@ REORDER_OUT_71(int16, int16_t)
REORDER_OUT_50(int32, int32_t)
REORDER_OUT_51(int32, int32_t)
REORDER_OUT_71(int32, int32_t)
+REORDER_OUT_50(f32, float)
+REORDER_OUT_51(f32, float)
+REORDER_OUT_71(f32, float)
#define REORDER_DUMMY ((void *)1)
@@ -149,6 +152,15 @@ static av_cold ff_reorder_func find_reorder_func(int codec_id,
layout == AV_CH_LAYOUT_7POINT1 ?
out ? alsa_reorder_int32_out_71 : NULL :
NULL :
+ codec_id == CODEC_ID_PCM_F32LE || codec_id == CODEC_ID_PCM_F32BE ?
+ layout == AV_CH_LAYOUT_QUAD ? REORDER_DUMMY :
+ layout == AV_CH_LAYOUT_5POINT0_BACK || layout == AV_CH_LAYOUT_5POINT0 ?
+ out ? alsa_reorder_f32_out_50 : NULL :
+ layout == AV_CH_LAYOUT_5POINT1_BACK || layout == AV_CH_LAYOUT_5POINT1 ?
+ out ? alsa_reorder_f32_out_51 : NULL :
+ layout == AV_CH_LAYOUT_7POINT1 ?
+ out ? alsa_reorder_f32_out_71 : NULL :
+ NULL :
NULL;
}