Fix to hashing function to support highbitdepth
Change-Id: Ib5de3d1c1acce676b3fcc12b4c237d681ac9a845
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 18045e6..ae69893 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -4639,18 +4639,12 @@
static uint32_t get_block_residue_hash(MACROBLOCK *x, BLOCK_SIZE bsize) {
const int rows = block_size_high[bsize];
const int cols = block_size_wide[bsize];
- const int diff_stride = cols;
const struct macroblock_plane *const p = &x->plane[0];
const int16_t *diff = &p->src_diff[0];
- uint8_t hash_data[MAX_SB_SQUARE];
- for (int r = 0; r < rows; ++r) {
- for (int c = 0; c < cols; ++c) {
- hash_data[cols * r + c] = clip_pixel(diff[c] + 128);
- }
- diff += diff_stride;
- }
- return (av1_get_crc_value(&x->tx_rd_record.crc_calculator, hash_data,
- rows * cols)
+ uint16_t hash_data[MAX_SB_SQUARE];
+ memcpy(hash_data, diff, sizeof(*hash_data) * rows * cols);
+ return (av1_get_crc_value(&x->tx_rd_record.crc_calculator,
+ (uint8_t *)hash_data, 2 * rows * cols)
<< 7) +
bsize;
}