From 1ddf6ed39482defea29970fcfb9c8027f0ed79ec Mon Sep 17 00:00:00 2001
From: Remy Foray <remy.foray@allegrodvt.com>
Date: Mon, 18 May 2020 11:53:43 +0200
Subject: [PATCH] Fix #1068: bins counting issue

---
 source/Lib/EncoderLib/EncSlice.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp
index c821cdbe78..c77adb2ca3 100644
--- a/source/Lib/EncoderLib/EncSlice.cpp
+++ b/source/Lib/EncoderLib/EncSlice.cpp
@@ -1845,6 +1845,7 @@ void EncSlice::encodeSlice   ( Picture* pcPic, OutputBitstream* pcSubstreams, ui
     {
       if (ctuIdx != 0) // if it is the first CTU, then the entropy coder has already been reset
       {
+        numBinsCoded += m_CABACWriter->getNumBins();
         m_CABACWriter->initCtxModels( *pcSlice );
         cs.resetPrevPLT(cs.prevPLT);
       }
@@ -1854,6 +1855,7 @@ void EncSlice::encodeSlice   ( Picture* pcPic, OutputBitstream* pcSubstreams, ui
       // Synchronize cabac probabilities with upper CTU if it's available and at the start of a line.
       if (ctuIdx != 0) // if it is the first CTU, then the entropy coder has already been reset
       {
+        numBinsCoded += m_CABACWriter->getNumBins();
         m_CABACWriter->initCtxModels( *pcSlice );
         cs.resetPrevPLT(cs.prevPLT);
       }
@@ -1919,7 +1921,7 @@ void EncSlice::encodeSlice   ( Picture* pcPic, OutputBitstream* pcSubstreams, ui
   {
     m_encCABACTableIdx = pcSlice->getSliceType();
   }
-  numBinsCoded = m_CABACWriter->getNumBins();
+  numBinsCoded += m_CABACWriter->getNumBins();
 
 }
 
-- 
GitLab