diff --git a/libavcodec/vorbis_enc.c b/libavcodec/vorbis_enc.c index 514ef976db..5cded20b82 100644 --- a/libavcodec/vorbis_enc.c +++ b/libavcodec/vorbis_enc.c @@ -923,13 +923,13 @@ static float * put_vector(codebook_t * book, PutBitContext * pb, float * num) { return &book->dimentions[entry * book->ndimentions]; } -static void residue_encode(venc_context_t * venc, residue_t * rc, PutBitContext * pb, float * coeffs, int samples, int channels) { +static void residue_encode(venc_context_t * venc, residue_t * rc, PutBitContext * pb, float * coeffs, int samples, int real_ch) { int pass, i, j, p, k; int psize = rc->partition_size; int partitions = (rc->end - rc->begin) / psize; + int channels = (rc->type == 2) ? 1 : real_ch; int classes[channels][partitions]; int classwords = venc->codebooks[rc->classbook].ndimentions; - int real_ch = channels; if (rc->type == 2) channels = 1;