Correct analysis downmix scaling factor
authorMark Harris <mark.hsj@gmail.com>
Sat, 27 Aug 2016 14:03:02 +0000 (07:03 -0700)
committerMark Harris <mark.hsj@gmail.com>
Sat, 27 Aug 2016 14:03:02 +0000 (07:03 -0700)
Divide by the actual number of channels mixed

src/opus_encoder.c

index d1784e7..f484b0a 100644 (file)
@@ -811,9 +811,9 @@ void downmix_float(const void *_x, opus_val32 *sub, int subframe, int offset, in
 #else
    scale = 1.f;
 #endif
-   if (C==-2)
+   if (c2==-2)
       scale /= C;
-   else
+   else if (c2>-1)
       scale /= 2;
    for (j=0;j<subframe;j++)
       sub[j] *= scale;
@@ -846,9 +846,9 @@ void downmix_int(const void *_x, opus_val32 *sub, int subframe, int offset, int
 #else
    scale = 1.f/32768;
 #endif
-   if (C==-2)
+   if (c2==-2)
       scale /= C;
-   else
+   else if (c2>-1)
       scale /= 2;
    for (j=0;j<subframe;j++)
       sub[j] *= scale;