summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-01-23 15:53:36 +0100
committerwm4 <wm4@nowhere>2014-01-23 15:53:36 +0100
commit8b0cfdc81e0f02eaf4709aa1046f2b25e36f57d0 (patch)
treeb1cca35133391e83dd7324cd09c1e8be650413d5 /audio
parentaf5c393d2c0b508b0fbd68f18fb9d0b4f34c61ca (diff)
downloadmpv-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.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]);