diff options
author | wm4 <wm4@nowhere> | 2014-01-23 15:53:36 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-01-23 15:53:36 +0100 |
commit | 8b0cfdc81e0f02eaf4709aa1046f2b25e36f57d0 (patch) | |
tree | b1cca35133391e83dd7324cd09c1e8be650413d5 /audio | |
parent | af5c393d2c0b508b0fbd68f18fb9d0b4f34c61ca (diff) | |
download | mpv-8b0cfdc81e0f02eaf4709aa1046f2b25e36f57d0.tar.bz2 mpv-8b0cfdc81e0f02eaf4709aa1046f2b25e36f57d0.tar.xz |
audio: fix balance control
Balance controls as used by mixer.c was broken, because af_pan.c stopped
accepting its arguments. We have to allow 0 channels explicitly. Also,
fix null pointer access if the matrix parameter is not used.
Regression from commit 82983970.
Diffstat (limited to 'audio')
-rw-r--r-- | audio/filter/af_pan.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/audio/filter/af_pan.c b/audio/filter/af_pan.c index 86309fadf9..081a8f72d0 100644 --- a/audio/filter/af_pan.c +++ b/audio/filter/af_pan.c @@ -153,13 +153,13 @@ static int af_open(struct af_instance* af){ int j,k; int nch = s->nch; - if(AF_OK != control(af,AF_CONTROL_SET_PAN_NOUT, &nch)) + if(nch && AF_OK != control(af,AF_CONTROL_SET_PAN_NOUT, &nch)) return AF_ERROR; // Read pan values char *cp = s->matrixstr; j = 0; k = 0; - while(k < AF_NCH){ + while(cp && k < AF_NCH){ sscanf(cp, "%f%n" , &s->level[j][k], &n); MP_VERBOSE(af, "[pan] Pan level from channel %i to" " channel %i = %f\n",k,j,s->level[j][k]); |