[FFmpeg-cvslog] Support alsa channel reordering for float.

Carl Eugen Hoyos git at videolan.org
Thu Apr 14 05:10:33 CEST 2011


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Thu Apr 14 01:20:11 2011 +0200| [460acdf059906da5d378a3414bb9053b401e484d] | committer: Carl Eugen Hoyos

Support alsa channel reordering for float.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=460acdf059906da5d378a3414bb9053b401e484d
---

 libavdevice/alsa-audio-common.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
index 0e5b997..ce27bcc 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;
 }
 



More information about the ffmpeg-cvslog mailing list