[FFmpeg-cvslog] Support u8, s8, alaw and mulaw channel reordering in alsa.

Anton Khirnov git at videolan.org
Thu Jun 23 16:51:33 CEST 2011


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Thu Jun 23 16:49:51 2011 +0200| [ffc6c8a4305d25db8a5af72389a2453b17f43646] | committer: Carl Eugen Hoyos

Support u8, s8, alaw and mulaw channel reordering in alsa.

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

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

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 ?



More information about the ffmpeg-cvslog mailing list