diff options
Diffstat (limited to 'dec_audio.c')
-rw-r--r-- | dec_audio.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/dec_audio.c b/dec_audio.c index 68d3328fac..248b83b5cb 100644 --- a/dec_audio.c +++ b/dec_audio.c @@ -563,10 +563,12 @@ case AFM_A52: { driver=0;break; } // 'a52 cannot upmix' hotfix: - sh_audio->channels=a52_printinfo(sh_audio); - if(audio_output_channels<sh_audio->channels) - sh_audio->channels=audio_output_channels; + a52_printinfo(sh_audio); +// if(audio_output_channels<sh_audio->channels) +// sh_audio->channels=audio_output_channels; // channels setup: + sh_audio->channels=audio_output_channels; +while(sh_audio->channels>0){ switch(sh_audio->channels){ case 1: a52_flags=A52_MONO; break; // case 2: a52_flags=A52_STEREO; break; @@ -586,7 +588,10 @@ case AFM_A52: { } mp_msg(MSGT_DECAUDIO,MSGL_V,"A52 flags after a52_frame: 0x%X\n",flags); // frame decoded, let's init resampler: - if(!a52_resample_init(a52_accel,flags,sh_audio->channels)){ + if(a52_resample_init(a52_accel,flags,sh_audio->channels)) break; + --sh_audio->channels; // try to decrease no. of channels +} + if(sh_audio->channels<=0){ mp_msg(MSGT_DECAUDIO,MSGL_ERR,"a52: no resampler. try different channel setup!\n"); driver=0;break; } |