diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-06-23 16:49:51 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-06-23 16:50:28 +0200 |
commit | ffc6c8a4305d25db8a5af72389a2453b17f43646 (patch) | |
tree | 8a8605700b06a583a9fca9b21156206ecaabffe2 | |
parent | 4b87a088bf5acad2a11e9f9c1dcec8f29bab3ec9 (diff) | |
download | ffmpeg-ffc6c8a4305d25db8a5af72389a2453b17f43646.tar.gz |
Support u8, s8, alaw and mulaw channel reordering in alsa.
-rw-r--r-- | 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 38466a06ce..668ca02201 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 ? |