Bug fix for Arm-aarch64 Segmentation fault.
aarch64 compiler optimizes out "& 0xffff"
in av1_extract_interp_filter() resulting in invalid filter params.
As a workaround 0xf is used instead of 0xffff
BUG=aomedia:1902
Change-Id: I24b6a30196652b745bbf8a9718656efa97c9abc3
diff --git a/av1/common/filter.h b/av1/common/filter.h
index e576949..0c24ad9 100644
--- a/av1/common/filter.h
+++ b/av1/common/filter.h
@@ -46,13 +46,13 @@
typedef uint32_t InterpFilters;
static INLINE InterpFilter av1_extract_interp_filter(InterpFilters filters,
int x_filter) {
- return (InterpFilter)((filters >> (x_filter ? 16 : 0)) & 0xffff);
+ return (InterpFilter)((filters >> (x_filter ? 16 : 0)) & 0xf);
}
static INLINE InterpFilters av1_make_interp_filters(InterpFilter y_filter,
InterpFilter x_filter) {
- uint16_t y16 = y_filter & 0xffff;
- uint16_t x16 = x_filter & 0xffff;
+ uint16_t y16 = y_filter & 0xf;
+ uint16_t x16 = x_filter & 0xf;
return y16 | ((uint32_t)x16 << 16);
}