[vlc-commits] auhal: fix wrong analog 5.1 channel ordering (close #8589)

David Fuhrmann git at videolan.org
Tue Jun 18 09:04:55 CEST 2013


vlc | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Tue Jun 18 08:59:46 2013 +0200| [fa396d194fa58097223475d8038605f10a5041c5] | committer: David Fuhrmann

auhal: fix wrong analog 5.1 channel ordering (close #8589)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fa396d194fa58097223475d8038605f10a5041c5
---

 modules/audio_output/auhal.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index d103ae5..f32f4c3 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -570,6 +570,7 @@ static int StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt)
 
     memset (&new_layout, 0, sizeof(new_layout));
     uint32_t chans_out[AOUT_CHAN_MAX];
+    memset(&chans_out, 0, sizeof(chans_out));
 
     /* Some channel abbreviations used below:
      * L - left
@@ -622,14 +623,16 @@ static int StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt)
             break;
         case 6:
             if (fmt->i_physical_channels & (AOUT_CHAN_LFE)) {
-                new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_20; // L R Ls Rs C LFE
+                /* note: for some reason, kAudioChannelLayoutTag_DVD_20, which would not require channel reordering, 
+                 does not work anymore */
+                new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_AudioUnit_5_1; // L R C LFE Ls Rs
 
                 chans_out[0] = AOUT_CHAN_LEFT;
                 chans_out[1] = AOUT_CHAN_RIGHT;
-                chans_out[2] = AOUT_CHAN_REARLEFT;
-                chans_out[3] = AOUT_CHAN_REARRIGHT;
-                chans_out[4] = AOUT_CHAN_CENTER;
-                chans_out[5] = AOUT_CHAN_LFE;
+                chans_out[2] = AOUT_CHAN_CENTER;
+                chans_out[3] = AOUT_CHAN_LFE;
+                chans_out[4] = AOUT_CHAN_REARLEFT;
+                chans_out[5] = AOUT_CHAN_REARRIGHT;
 
                 p_aout->sys->chans_to_reorder = aout_CheckChannelReorder(NULL, chans_out, fmt->i_physical_channels, p_aout->sys->chan_table);
                 if (p_aout->sys->chans_to_reorder)



More information about the vlc-commits mailing list