summaryrefslogtreecommitdiffstats
path: root/dec_audio.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-03 23:14:13 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-03 23:14:13 +0000
commit69c1559ccb3cb3f30247354229af530f7f162ff1 (patch)
tree44b2e553504278eedec251c5d15c40c02dd06d76 /dec_audio.c
parente7ed9710f6b4594b16ff1e311024500bf2fcc629 (diff)
downloadmpv-69c1559ccb3cb3f30247354229af530f7f162ff1.tar.bz2
mpv-69c1559ccb3cb3f30247354229af530f7f162ff1.tar.xz
iterated a52 channel setup
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3969 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dec_audio.c')
-rw-r--r--dec_audio.c13
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;
}