diff options
author | wm4 <wm4@nowhere> | 2013-11-30 18:58:18 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-12-01 19:40:14 +0100 |
commit | 228b652ad53be0887044224c90397a2a6aabc30e (patch) | |
tree | c72c8b3d622be1aacd4ab1d850d624aec22d5252 /audio | |
parent | 20e08ac84e1addaf659e8211e38235022bf8f96e (diff) | |
download | mpv-228b652ad53be0887044224c90397a2a6aabc30e.tar.bz2 mpv-228b652ad53be0887044224c90397a2a6aabc30e.tar.xz |
ao_oss: SNDCTL_DSP_CHANNELS takes int, not uint8_t
This caused weird issue, probably caused by setting up the wrong number
of channels, or similar. See github issue #383.
Patch by bugmen0t on github.
Diffstat (limited to 'audio')
-rw-r--r-- | audio/out/ao_oss.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/audio/out/ao_oss.c b/audio/out/ao_oss.c index 5050f9771f..247667a11f 100644 --- a/audio/out/ao_oss.c +++ b/audio/out/ao_oss.c @@ -430,10 +430,11 @@ static void reset(struct ao *ao) ioctl(p->audio_fd, SNDCTL_DSP_SPEED, &ao->samplerate); ioctl(p->audio_fd, SNDCTL_DSP_SETFMT, &oss_format); if (!AF_FORMAT_IS_AC3(ao->format)) { + int c = ao->channels.num; if (ao->channels.num > 2) - ioctl(p->audio_fd, SNDCTL_DSP_CHANNELS, &ao->channels.num); + ioctl(p->audio_fd, SNDCTL_DSP_CHANNELS, &c); else { - int c = ao->channels.num - 1; + c--; ioctl(p->audio_fd, SNDCTL_DSP_STEREO, &c); } ioctl(p->audio_fd, SNDCTL_DSP_SPEED, &ao->samplerate); |