summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-01-23 15:53:36 +0100
committerwm4 <wm4@nowhere>2014-01-31 19:06:17 +0100
commitf088abb2bfb9913ab9e8ef560db538a14b3a07e1 (patch)
tree3729393b49794248a0d4150fa188410d66219fce
parent4a3975bf7e81fcba6fda6345da496a26d7280ddf (diff)
downloadmpv-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.c4
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]);