]> git.sesse.net Git - vlc/commitdiff
* modules/stream_out/transcode.c: fix for channels mapping.
authorGildas Bazin <gbazin@videolan.org>
Mon, 30 Aug 2004 21:02:00 +0000 (21:02 +0000)
committerGildas Bazin <gbazin@videolan.org>
Mon, 30 Aug 2004 21:02:00 +0000 (21:02 +0000)
modules/stream_out/transcode.c

index 8841c1acb7a6998152c97ff24990ec68a87a18d4..3832f8ac0a1457af7e54823b8c19f51d5d09dd90 100644 (file)
@@ -872,10 +872,16 @@ static int transcode_audio_new( sout_stream_t *p_stream,
     /* Sanity check for audio channels */
     id->p_encoder->fmt_out.audio.i_channels =
         __MIN( id->p_encoder->fmt_out.audio.i_channels,
-               id->p_decoder->fmt_in.audio.i_channels );
-    id->p_encoder->fmt_out.audio.i_physical_channels =
-        id->p_encoder->fmt_out.audio.i_original_channels =
-            pi_channels_maps[id->p_encoder->fmt_out.audio.i_channels];
+               id->p_decoder->fmt_out.audio.i_channels );
+    if( id->p_decoder->fmt_out.audio.i_channels ==
+        id->p_encoder->fmt_out.audio.i_channels )
+        id->p_encoder->fmt_out.audio.i_physical_channels =
+            id->p_encoder->fmt_out.audio.i_original_channels =
+                id->p_decoder->fmt_out.audio.i_physical_channels;
+    else
+        id->p_encoder->fmt_out.audio.i_physical_channels =
+            id->p_encoder->fmt_out.audio.i_original_channels =
+                pi_channels_maps[id->p_encoder->fmt_out.audio.i_channels];
 
     /* Initialization of encoder format structures */
     es_format_Init( &id->p_encoder->fmt_in, AUDIO_ES, AOUT_FMT_S16_NE );
@@ -883,7 +889,7 @@ static int transcode_audio_new( sout_stream_t *p_stream,
     id->p_encoder->fmt_in.audio.i_rate = id->p_encoder->fmt_out.audio.i_rate;
     id->p_encoder->fmt_in.audio.i_physical_channels =
         id->p_encoder->fmt_in.audio.i_original_channels =
-            pi_channels_maps[id->p_encoder->fmt_out.audio.i_channels];
+            id->p_encoder->fmt_out.audio.i_physical_channels;
     id->p_encoder->fmt_in.audio.i_channels =
         id->p_encoder->fmt_out.audio.i_channels;
     id->p_encoder->fmt_in.audio.i_bitspersample = 16;