mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-15 21:39:59 +02:00
use WEBP_INLINE for inline function declarations
removes a #define inline, objectionable in certain projects Change-Id: Iebe0ce0b25a030756304d402679ef769e5f854d1
This commit is contained in:
@ -341,8 +341,8 @@ static void NeedsFilter(const __m128i* p1, const __m128i* p0, const __m128i* q0,
|
||||
// Edge filtering functions
|
||||
|
||||
// Applies filter on 2 pixels (p0 and q0)
|
||||
static inline void DoFilter2(const __m128i* p1, __m128i* p0, __m128i* q0,
|
||||
const __m128i* q1, int thresh) {
|
||||
static WEBP_INLINE void DoFilter2(const __m128i* p1, __m128i* p0, __m128i* q0,
|
||||
const __m128i* q1, int thresh) {
|
||||
__m128i a, mask;
|
||||
const __m128i sign_bit = _mm_set1_epi8(0x80);
|
||||
const __m128i p1s = _mm_xor_si128(*p1, sign_bit);
|
||||
@ -362,8 +362,9 @@ static inline void DoFilter2(const __m128i* p1, __m128i* p0, __m128i* q0,
|
||||
}
|
||||
|
||||
// Applies filter on 4 pixels (p1, p0, q0 and q1)
|
||||
static inline void DoFilter4(__m128i* p1, __m128i *p0, __m128i* q0, __m128i* q1,
|
||||
const __m128i* mask, int hev_thresh) {
|
||||
static WEBP_INLINE void DoFilter4(__m128i* p1, __m128i *p0,
|
||||
__m128i* q0, __m128i* q1,
|
||||
const __m128i* mask, int hev_thresh) {
|
||||
__m128i not_hev;
|
||||
__m128i t1, t2, t3;
|
||||
const __m128i sign_bit = _mm_set1_epi8(0x80);
|
||||
@ -408,9 +409,9 @@ static inline void DoFilter4(__m128i* p1, __m128i *p0, __m128i* q0, __m128i* q1,
|
||||
}
|
||||
|
||||
// Applies filter on 6 pixels (p2, p1, p0, q0, q1 and q2)
|
||||
static inline void DoFilter6(__m128i *p2, __m128i* p1, __m128i *p0,
|
||||
__m128i* q0, __m128i* q1, __m128i *q2,
|
||||
const __m128i* mask, int hev_thresh) {
|
||||
static WEBP_INLINE void DoFilter6(__m128i *p2, __m128i* p1, __m128i *p0,
|
||||
__m128i* q0, __m128i* q1, __m128i *q2,
|
||||
const __m128i* mask, int hev_thresh) {
|
||||
__m128i a, not_hev;
|
||||
const __m128i sign_bit = _mm_set1_epi8(0x80);
|
||||
|
||||
@ -466,8 +467,8 @@ static inline void DoFilter6(__m128i *p2, __m128i* p1, __m128i *p0,
|
||||
//
|
||||
// TODO(somnath): Investigate _mm_shuffle* also see if it can be broken into
|
||||
// two Load4x4() to avoid code duplication.
|
||||
static inline void Load8x4(const uint8_t* b, int stride,
|
||||
__m128i* p, __m128i* q) {
|
||||
static WEBP_INLINE void Load8x4(const uint8_t* b, int stride,
|
||||
__m128i* p, __m128i* q) {
|
||||
__m128i t1, t2;
|
||||
|
||||
// Load 0th, 1st, 4th and 5th rows
|
||||
@ -506,9 +507,10 @@ static inline void Load8x4(const uint8_t* b, int stride,
|
||||
*q = _mm_unpackhi_epi32(t1, t2);
|
||||
}
|
||||
|
||||
static inline void Load16x4(const uint8_t* r0, const uint8_t* r8, int stride,
|
||||
__m128i* p1, __m128i* p0,
|
||||
__m128i* q0, __m128i* q1) {
|
||||
static WEBP_INLINE void Load16x4(const uint8_t* r0, const uint8_t* r8,
|
||||
int stride,
|
||||
__m128i* p1, __m128i* p0,
|
||||
__m128i* q0, __m128i* q1) {
|
||||
__m128i t1, t2;
|
||||
// Assume the pixels around the edge (|) are numbered as follows
|
||||
// 00 01 | 02 03
|
||||
@ -540,7 +542,7 @@ static inline void Load16x4(const uint8_t* r0, const uint8_t* r8, int stride,
|
||||
*q1 = _mm_unpackhi_epi64(t2, *q1);
|
||||
}
|
||||
|
||||
static inline void Store4x4(__m128i* x, uint8_t* dst, int stride) {
|
||||
static WEBP_INLINE void Store4x4(__m128i* x, uint8_t* dst, int stride) {
|
||||
int i;
|
||||
for (i = 0; i < 4; ++i, dst += stride) {
|
||||
*((int32_t*)dst) = _mm_cvtsi128_si32(*x);
|
||||
@ -549,8 +551,9 @@ static inline void Store4x4(__m128i* x, uint8_t* dst, int stride) {
|
||||
}
|
||||
|
||||
// Transpose back and store
|
||||
static inline void Store16x4(uint8_t* r0, uint8_t* r8, int stride, __m128i* p1,
|
||||
__m128i* p0, __m128i* q0, __m128i* q1) {
|
||||
static WEBP_INLINE void Store16x4(uint8_t* r0, uint8_t* r8, int stride,
|
||||
__m128i* p1, __m128i* p0,
|
||||
__m128i* q0, __m128i* q1) {
|
||||
__m128i t1;
|
||||
|
||||
// p0 = 71 70 61 60 51 50 41 40 31 30 21 20 11 10 01 00
|
||||
|
Reference in New Issue
Block a user