From 3aca16e857a1e12c566cd416dd14ecee24aba184 Mon Sep 17 00:00:00 2001
From: Rostislav Pehlivanov <atomnuker@gmail.com>
Date: Thu, 20 Jul 2017 07:33:33 +0100
Subject: [PATCH] opus_rc: fix CDF encoding of zeroes

0th CDF value is where probabilities are.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
---
 libavcodec/opus_rc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/opus_rc.c b/libavcodec/opus_rc.c
index c5cccd6cd2f..3972bb0b028 100644
--- a/libavcodec/opus_rc.c
+++ b/libavcodec/opus_rc.c
@@ -108,7 +108,7 @@ uint32_t ff_opus_rc_dec_cdf(OpusRangeCoder *rc, const uint16_t *cdf)
 
 void ff_opus_rc_enc_cdf(OpusRangeCoder *rc, int val, const uint16_t *cdf)
 {
-    opus_rc_enc_update(rc, cdf[val], cdf[val + 1], cdf[0], 1);
+    opus_rc_enc_update(rc, (!!val)*cdf[val], cdf[val + 1], cdf[0], 1);
 }
 
 uint32_t ff_opus_rc_dec_log(OpusRangeCoder *rc, uint32_t bits)
-- 
GitLab