[PATCH - alsa-plugins 2/2] a52 - set channel layout with recent libavcodec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



As of SVN r18631 (2009-04-20) A52 encoder of libavcodec outputs a
warning at run-time if channel layout is not specified.

Fix that by setting the channel layout in a52_prepare() when building
against libavcodec revision that supports this.

Signed-off-by: Anssi Hannula <anssi.hannula@xxxxxx>
---
 a52/pcm_a52.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
index b95d7d4..ed491b3 100644
--- a/a52/pcm_a52.c
+++ b/a52/pcm_a52.c
@@ -436,6 +436,21 @@ static int a52_prepare(snd_pcm_ioplug_t *io)
 	rec->avctx->bit_rate = rec->bitrate * 1000;
 	rec->avctx->sample_rate = io->rate;
 	rec->avctx->channels = io->channels;
+#if LIBAVCODEC_VERSION_MAJOR > 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 3)
+	switch (io->channels) {
+	case 2:
+		rec->avctx->channel_layout = CH_LAYOUT_STEREO;
+		break;
+	case 4:
+		rec->avctx->channel_layout = CH_LAYOUT_QUAD;
+		break;
+	case 6:
+		rec->avctx->channel_layout = CH_LAYOUT_5POINT1;
+		break;
+	default:
+		break;
+	}
+#endif
 
 	if (avcodec_open(rec->avctx, rec->codec) < 0)
 		return -EINVAL;
-- 
1.6.4.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux