<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>