<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<span style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">From 001f6eb747eccbabc352c802ba6ef466145d649b Mon Sep 17 00:00:00 2001</span>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
From: Shashank Pathipati <shashank.pathipati@multicorewareinc.com></div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
Date: Fri, 2 May 2025 10:01:57 +0530</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
Subject: [PATCH] Fix crash in hist-scenecut for high bit-depth builds</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
---</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
 source/encoder/slicetype.cpp | 7 +++++--</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
 1 file changed, 5 insertions(+), 2 deletions(-)</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
diff --git a/source/encoder/slicetype.cpp b/source/encoder/slicetype.cpp</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
index 2cbf95237..edf2b00d9 100644</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
--- a/source/encoder/slicetype.cpp</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+++ b/source/encoder/slicetype.cpp</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
@@ -1562,13 +1562,16 @@ void LookaheadTLD::calculateHistogram(</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
 </div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
 {</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
     *sum = 0;</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+    uint8_t shift = X265_DEPTH - 8;</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
 </div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
     for (uint32_t verticalIdx = 0; verticalIdx < inputHeight; verticalIdx += dsFactor)</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
     {</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
         for (uint32_t horizontalIdx = 0; horizontalIdx < inputWidth; horizontalIdx += dsFactor)</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
         {</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
-            ++(histogram[inputSrc[horizontalIdx]]);</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
-            *sum += inputSrc[horizontalIdx];</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+            pixel val = inputSrc[horizontalIdx] >> shift;</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+            X265_CHECK(val < HISTOGRAM_NUMBER_OF_BINS, "Pixel value out of allocated histogram range. This will lead to memory corruption.\n");</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+            ++(histogram[val]);</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
+            *sum += val;</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
         }</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
         inputSrc += (stride << (dsFactor >> 1));</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
     }</div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
-- </div>
<div class="elementToProof" style="font-family: Consolas, Courier, monospace; font-size: 12pt; color: rgb(0, 0, 0);">
2.49.0</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
</body>
</html>