From f088abb2bfb9913ab9e8ef560db538a14b3a07e1 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 23 Jan 2014 15:53:36 +0100 Subject: 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. --- audio/filter/af_pan.c | 4 ++-- 1 file 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]); -- cgit v1.2.3