History

Remove UBSAN warnings about negative left shift

Haibo Zhu committed 11 years ago

Commit 03d16bb1 parent 3067d1212 files · +71 −71Browse files

Showing the changes to codec/common/src/deblocking_common.cpp (1 of 12 files). Show all

Unified · Split

codec/common/src/deblocking_common.cpp+20−20
@@ -21,14 +21,14 @@ void DeblockLumaLt4_c (uint8_t* pPix, int32_t iStrideX, int32_t iStrideY, int32_ · 20 unmodified lines
21 bool bDetaP2P0 = WELS_ABS (p2 - p0) < iBeta;21 bool bDetaP2P0 = WELS_ABS (p2 - p0) < iBeta;
22 bool bDetaQ2Q0 = WELS_ABS (q2 - q0) < iBeta;22 bool bDetaQ2Q0 = WELS_ABS (q2 - q0) < iBeta;
23 if (bDetaP2P0) {23 if (bDetaP2P0) {
24 pPix[-2 * iStrideX] = p1 + WELS_CLIP3 ((p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1, -iTc0, iTc0);24 pPix[-2 * iStrideX] = p1 + WELS_CLIP3 ((p2 + ((p0 + q0 + 1) >> 1) - (p1 * (1 << 1))) >> 1, -iTc0, iTc0);
25 iTc++;25 iTc++;
26 }26 }
27 if (bDetaQ2Q0) {27 if (bDetaQ2Q0) {
28 pPix[iStrideX] = q1 + WELS_CLIP3 ((q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1, -iTc0, iTc0);28 pPix[iStrideX] = q1 + WELS_CLIP3 ((q2 + ((p0 + q0 + 1) >> 1) - (q1 * (1 << 1))) >> 1, -iTc0, iTc0);
29 iTc++;29 iTc++;
30 }30 }
31 int32_t iDeta = WELS_CLIP3 ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3, -iTc, iTc);31 int32_t iDeta = WELS_CLIP3 ((((q0 - p0) * (1 << 2)) + (p1 - q1) + 4) >> 3, -iTc, iTc);
32 pPix[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */32 pPix[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */
33 pPix[0] = WelsClip1 (q0 - iDeta); /* q0' */33 pPix[0] = WelsClip1 (q0 - iDeta); /* q0' */
34 }34 }
@@ -56,23 +56,23 @@ void DeblockLumaEq4_c (uint8_t* pPix, int32_t iStrideX, int32_t iStrideY, int32_ · 21 unmodified lines
56 bool bDetaQ2Q0 = WELS_ABS (q2 - q0) < iBeta;56 bool bDetaQ2Q0 = WELS_ABS (q2 - q0) < iBeta;
57 if (bDetaP2P0) {57 if (bDetaP2P0) {
58 const int32_t p3 = pPix[-4 * iStrideX];58 const int32_t p3 = pPix[-4 * iStrideX];
59 pPix[-iStrideX] = (p2 + (p1 << 1) + (p0 << 1) + (q0 << 1) + q1 + 4) >> 3; //p059 pPix[-iStrideX] = (p2 + (p1 * (1 << 1)) + (p0 * (1 << 1)) + (q0 * (1 << 1)) + q1 + 4) >> 3; //p0
60 pPix[-2 * iStrideX] = (p2 + p1 + p0 + q0 + 2) >> 2; //p160 pPix[-2 * iStrideX] = (p2 + p1 + p0 + q0 + 2) >> 2; //p1
61 pPix[-3 * iStrideX] = ((p3 << 1) + p2 + (p2 << 1) + p1 + p0 + q0 + 4) >> 3; //p261 pPix[-3 * iStrideX] = ((p3 * (1 << 1)) + p2 + (p2 * (1 << 1)) + p1 + p0 + q0 + 4) >> 3; //p2
62 } else {62 } else {
63 pPix[-1 * iStrideX] = ((p1 << 1) + p0 + q1 + 2) >> 2; //p063 pPix[-1 * iStrideX] = ((p1 * (1 << 1)) + p0 + q1 + 2) >> 2; //p0
64 }64 }
65 if (bDetaQ2Q0) {65 if (bDetaQ2Q0) {
66 const int32_t q3 = pPix[3 * iStrideX];66 const int32_t q3 = pPix[3 * iStrideX];
67 pPix[0] = (p1 + (p0 << 1) + (q0 << 1) + (q1 << 1) + q2 + 4) >> 3; //q067 pPix[0] = (p1 + (p0 * (1 << 1)) + (q0 * (1 << 1)) + (q1 * (1 << 1)) + q2 + 4) >> 3; //q0
68 pPix[iStrideX] = (p0 + q0 + q1 + q2 + 2) >> 2; //q168 pPix[iStrideX] = (p0 + q0 + q1 + q2 + 2) >> 2; //q1
69 pPix[2 * iStrideX] = ((q3 << 1) + q2 + (q2 << 1) + q1 + q0 + p0 + 4) >> 3; //q269 pPix[2 * iStrideX] = ((q3 * (1 << 1)) + q2 + (q2 * (1 << 1)) + q1 + q0 + p0 + 4) >> 3; //q2
70 } else {70 } else {
71 pPix[0] = ((q1 << 1) + q0 + p1 + 2) >> 2; //q071 pPix[0] = ((q1 * (1 << 1)) + q0 + p1 + 2) >> 2; //q0
72 }72 }
73 } else {73 } else {
74 pPix[-iStrideX] = ((p1 << 1) + p0 + q1 + 2) >> 2; //p074 pPix[-iStrideX] = ((p1 * (1 << 1)) + p0 + q1 + 2) >> 2; //p0
75 pPix[ 0] = ((q1 << 1) + q0 + p1 + 2) >> 2; //q075 pPix[ 0] = ((q1 * (1 << 1)) + q0 + p1 + 2) >> 2; //q0
76 }76 }
77 }77 }
78 pPix += iStrideY;78 pPix += iStrideY;
@@ -107,7 +107,7 @@ void DeblockChromaLt4_c (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int · 28 unmodified lines
107 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;107 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;
108 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;108 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
109 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {109 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
110 iDeta = WELS_CLIP3 ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);110 iDeta = WELS_CLIP3 ((((q0 - p0) * (1 << 2)) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);
111 pPixCb[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */111 pPixCb[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */
112 pPixCb[0] = WelsClip1 (q0 - iDeta); /* q0' */112 pPixCb[0] = WelsClip1 (q0 - iDeta); /* q0' */
113 }113 }
@@ -123,7 +123,7 @@ void DeblockChromaLt4_c (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int · 9 unmodified lines
123 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;123 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
124 124
125 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {125 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
126 iDeta = WELS_CLIP3 ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);126 iDeta = WELS_CLIP3 ((((q0 - p0) * (1 << 2)) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);
127 pPixCr[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */127 pPixCr[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */
128 pPixCr[0] = WelsClip1 (q0 - iDeta); /* q0' */128 pPixCr[0] = WelsClip1 (q0 - iDeta); /* q0' */
129 }129 }
@@ -146,8 +146,8 @@ void DeblockChromaEq4_c (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int · 16 unmodified lines
146 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;146 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;
147 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;147 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
148 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {148 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
149 pPixCb[-iStrideX] = ((p1 << 1) + p0 + q1 + 2) >> 2; /* p0' */149 pPixCb[-iStrideX] = ((p1 * (1 << 1)) + p0 + q1 + 2) >> 2; /* p0' */
150 pPixCb[0] = ((q1 << 1) + q0 + p1 + 2) >> 2; /* q0' */150 pPixCb[0] = ((q1 * (1 << 1)) + q0 + p1 + 2) >> 2; /* q0' */
151 }151 }
152 152
153 //cr153 //cr
@@ -159,8 +159,8 @@ void DeblockChromaEq4_c (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStrideX, int · 5 unmodified lines
159 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;159 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;
160 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;160 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
161 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {161 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
162 pPixCr[-iStrideX] = ((p1 << 1) + p0 + q1 + 2) >> 2; /* p0' */162 pPixCr[-iStrideX] = ((p1 * (1 << 1)) + p0 + q1 + 2) >> 2; /* p0' */
163 pPixCr[0] = ((q1 << 1) + q0 + p1 + 2) >> 2; /* q0' */163 pPixCr[0] = ((q1 * (1 << 1)) + q0 + p1 + 2) >> 2; /* q0' */
164 }164 }
165 pPixCr += iStrideY;165 pPixCr += iStrideY;
166 pPixCb += iStrideY;166 pPixCb += iStrideY;
@@ -198,7 +198,7 @@ void DeblockChromaLt42_c (uint8_t* pPixCbCr, int32_t iStrideX, int32_t iStrideY, · 31 unmodified lines
198 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;198 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;
199 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;199 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
200 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {200 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
201 iDeta = WELS_CLIP3 ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);201 iDeta = WELS_CLIP3 ((((q0 - p0) * (1 << 2)) + (p1 - q1) + 4) >> 3, -iTc0, iTc0);
202 pPixCbCr[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */202 pPixCbCr[-iStrideX] = WelsClip1 (p0 + iDeta); /* p0' */
203 pPixCbCr[0] = WelsClip1 (q0 - iDeta); /* q0' */203 pPixCbCr[0] = WelsClip1 (q0 - iDeta); /* q0' */
204 }204 }
@@ -221,8 +221,8 @@ void DeblockChromaEq42_c (uint8_t* pPixCbCr, int32_t iStrideX, int32_t iStrideY, · 16 unmodified lines
221 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;221 bDetaP1P0 = WELS_ABS (p1 - p0) < iBeta;
222 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;222 bDetaQ1Q0 = WELS_ABS (q1 - q0) < iBeta;
223 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {223 if (bDetaP0Q0 && bDetaP1P0 && bDetaQ1Q0) {
224 pPixCbCr[-iStrideX] = ((p1 << 1) + p0 + q1 + 2) >> 2; /* p0' */224 pPixCbCr[-iStrideX] = ((p1 * (1 << 1)) + p0 + q1 + 2) >> 2; /* p0' */
225 pPixCbCr[0] = ((q1 << 1) + q0 + p1 + 2) >> 2; /* q0' */225 pPixCbCr[0] = ((q1 * (1 << 1)) + q0 + p1 + 2) >> 2; /* q0' */
226 }226 }
227 227
228 pPixCbCr += iStrideY;228 pPixCbCr += iStrideY;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t