summaryrefslogtreecommitdiffstats
path: root/dec_audio.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-23 17:26:20 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-23 17:26:20 +0000
commit6ee532e5672a603984ca2305eb57dce4ca5b48e7 (patch)
treea71c09096c020814b404dc039455f99c83bf476f /dec_audio.c
parentf58c6a0f6c1d5da59afab91c04a3dfec8366b21d (diff)
downloadmpv-6ee532e5672a603984ca2305eb57dce4ca5b48e7.tar.bz2
mpv-6ee532e5672a603984ca2305eb57dce4ca5b48e7.tar.xz
audio channels nr is identified from libmad's channel mode
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2435 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dec_audio.c')
-rw-r--r--dec_audio.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/dec_audio.c b/dec_audio.c
index 7bc87d6eec..5748cd512d 100644
--- a/dec_audio.c
+++ b/dec_audio.c
@@ -588,7 +588,21 @@ case AFM_VORBIS: {
printf(__FILE__ ":%d:mad: frame decoding failed\n", __LINE__);
}
- sh_audio->channels=2; // hack
+ switch (mad_frame.header.mode)
+ {
+ case MAD_MODE_SINGLE_CHANNEL:
+ sh_audio->channels=1;
+ break;
+ case MAD_MODE_DUAL_CHANNEL:
+ case MAD_MODE_JOINT_STEREO:
+ case MAD_MODE_STEREO:
+ sh_audio->channels=2;
+ break;
+ default:
+ mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "mad: unknown number of channels\n");
+ }
+ mp_msg(MSGT_DECAUDIO, MSGL_HINT, "mad: channels: %d (mad channel mode: %d)\n",
+ sh_audio->channels, mad_frame.header.mode);
/* var. name changed in 0.13.0 (beta) (libmad/CHANGES) -- alex */
#if (MAD_VERSION_MAJOR >= 0) && (MAD_VERSION_MINOR >= 13)
sh_audio->samplerate=mad_frame.header.samplerate;