From dfe0c4fe6fc26c94d633316ce8f85cb0c17ff807 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Fri, 27 Nov 2009 17:15:45 +0200 Subject: [PATCH] a52 - fix 5.1 channel order with recent libavcodec As of SVN r18540 libavcodec expects 5.1 channel audio with SMPTE channel order. Fix ALSA a52 plugin to use that order when built against such a libavcodec. Minor version of libavcodec was raised on the same day (Apr 17th 2009), so use that for the check. Signed-off-by: Anssi Hannula Signed-off-by: Takashi Iwai --- a52/pcm_a52.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c index 1abfdaa..b95d7d4 100644 --- a/a52/pcm_a52.c +++ b/a52/pcm_a52.c @@ -170,7 +170,13 @@ static int fill_data(snd_pcm_ioplug_t *io, static unsigned int ch_index[3][6] = { { 0, 1 }, { 0, 1, 2, 3 }, +#if LIBAVCODEC_VERSION_MAJOR > 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 26) + /* current libavcodec expects SMPTE order */ + { 0, 1, 4, 5, 2, 3 }, +#else + /* libavcodec older than r18540 expects A52 order */ { 0, 4, 1, 2, 3, 5 }, +#endif }; /* flatten copy to n-channel interleaved */ dst_step = io->channels; -- 2.47.1