diff options
author | wm4 <wm4@nowhere> | 2014-01-23 15:53:36 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-01-31 19:06:17 +0100 |
commit | f088abb2bfb9913ab9e8ef560db538a14b3a07e1 (patch) | |
tree | 3729393b49794248a0d4150fa188410d66219fce | |
parent | 4a3975bf7e81fcba6fda6345da496a26d7280ddf (diff) | |
download | mpv-f088abb2bfb9913ab9e8ef560db538a14b3a07e1.tar.bz2 mpv-f088abb2bfb9913ab9e8ef560db538a14b3a07e1.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.
-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]); |