[alsa-devel] [PATCH - alsa-plugins 1/2] a52 - fix 5.1 channel order with recent libavcodec

Anssi Hannula anssi.hannula at iki.fi
Fri Nov 27 16:15:45 CET 2009


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 <anssi.hannula at iki.fi>
---
 a52/pcm_a52.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

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;
-- 
1.6.4.4



More information about the Alsa-devel mailing list