Make the library work on big endian
Showing the changes to codec/decoder/core/src/deblocking.cpp (1 of 4 files). Show all
Unified · Split
| @@ -152,24 +152,24 @@ void_t inline DeblockingBSInsideMBAvsbase (int8_t* pNnzTab, uint8_t nBS[2][4][4] · 151 unmodified lines | ||
| 152 | 152 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 153 | 153 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); |
| 154 | 154 | |
| 155 | − * (uint32_t*)uiBsx3 = (uiNnz32b0 | (uiNnz32b0 >> 8)) << iLShiftFactor; | |
| 155 | + * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b0) << iLShiftFactor; | |
| 156 | 156 | nBS[0][1][0] = uiBsx3[0]; |
| 157 | 157 | nBS[0][2][0] = uiBsx3[1]; |
| 158 | 158 | nBS[0][3][0] = uiBsx3[2]; |
| 159 | 159 | |
| 160 | − * (uint32_t*)uiBsx3 = (uiNnz32b1 | (uiNnz32b1 >> 8)) << iLShiftFactor; | |
| 160 | + * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b1) << iLShiftFactor; | |
| 161 | 161 | nBS[0][1][1] = uiBsx3[0]; |
| 162 | 162 | nBS[0][2][1] = uiBsx3[1]; |
| 163 | 163 | nBS[0][3][1] = uiBsx3[2]; |
| 164 | 164 | * (uint32_t*)nBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor; |
| 165 | 165 | |
| 166 | − * (uint32_t*)uiBsx3 = (uiNnz32b2 | (uiNnz32b2 >> 8)) << iLShiftFactor; | |
| 166 | + * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b2) << iLShiftFactor; | |
| 167 | 167 | nBS[0][1][2] = uiBsx3[0]; |
| 168 | 168 | nBS[0][2][2] = uiBsx3[1]; |
| 169 | 169 | nBS[0][3][2] = uiBsx3[2]; |
| 170 | 170 | * (uint32_t*)nBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor; |
| 171 | 171 | |
| 172 | − * (uint32_t*)uiBsx3 = (uiNnz32b3 | (uiNnz32b3 >> 8)) << iLShiftFactor; | |
| 172 | + * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b3) << iLShiftFactor; | |
| 173 | 173 | nBS[0][1][3] = uiBsx3[0]; |
| 174 | 174 | nBS[0][2][3] = uiBsx3[1]; |
| 175 | 175 | nBS[0][3][3] = uiBsx3[2]; |
| @@ -188,22 +188,22 @@ void_t static inline DeblockingBSInsideMBNormal (PDqLayer pCurDqLayer, uint8_t n · 12 unmodified lines | ||
| 188 | 188 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 189 | 189 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); |
| 190 | 190 | |
| 191 | − * (uint32_t*)uiBsx4 = (uiNnz32b0 | (uiNnz32b0 >> 8)); | |
| 191 | + * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b0); | |
| 192 | 192 | nBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 1, 0); |
| 193 | 193 | nBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 2, 1); |
| 194 | 194 | nBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 3, 2); |
| 195 | 195 | |
| 196 | − * (uint32_t*)uiBsx4 = (uiNnz32b1 | (uiNnz32b1 >> 8)); | |
| 196 | + * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b1); | |
| 197 | 197 | nBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 5, 4); |
| 198 | 198 | nBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 6, 5); |
| 199 | 199 | nBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 7, 6); |
| 200 | 200 | |
| 201 | − * (uint32_t*)uiBsx4 = (uiNnz32b2 | (uiNnz32b2 >> 8)); | |
| 201 | + * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b2); | |
| 202 | 202 | nBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 9, 8); |
| 203 | 203 | nBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 10, 9); |
| 204 | 204 | nBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 11, 10); |
| 205 | 205 | |
| 206 | − * (uint32_t*)uiBsx4 = (uiNnz32b3 | (uiNnz32b3 >> 8)); | |
| 206 | + * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b3); | |
| 207 | 207 | nBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 13, 12); |
| 208 | 208 | nBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 14, 13); |
| 209 | 209 | nBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 15, 14); |
| @@ -233,18 +233,18 @@ uint32_t DeblockingBsMarginalMBAvcbase (PDqLayer pCurDqLayer, int32_t iEdge, int · 23 unmodified lines | ||
| 233 | 233 | uint32_t uiBSx4; |
| 234 | 234 | //uint8_t* bS = static_cast<uint8_t*>(&uiBSx4); |
| 235 | 235 | uint8_t* pBS = (uint8_t*) (&uiBSx4); |
| 236 | − uint32_t uiBIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][0]); | |
| 237 | − uint32_t uiBnIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][4]); | |
| 236 | + const uint8_t *pBIdx = &g_kuiTableBIdx[iEdge][0]; | |
| 237 | + const uint8_t *pBnIdx = &g_kuiTableBIdx[iEdge][4]; | |
| 238 | 238 | |
| 239 | 239 | for (i = 0; i < 4; i++) { |
| 240 | − if (pCurDqLayer->pNzc[iMbXy][uiBIdx & 0xff] | pCurDqLayer->pNzc[iNeighMb][uiBnIdx & 0xff]) { | |
| 240 | + if (pCurDqLayer->pNzc[iMbXy][*pBIdx] | pCurDqLayer->pNzc[iNeighMb][*pBnIdx]) { | |
| 241 | 241 | pBS[i] = 2; |
| 242 | 242 | } else { |
| 243 | − pBS[i] = MB_BS_MV (pCurDqLayer->pRefIndex[LIST_0], pCurDqLayer->pMv[LIST_0], iMbXy, iNeighMb, (uiBIdx & 0xff), | |
| 244 | − (uiBnIdx & 0xff)); | |
| 243 | + pBS[i] = MB_BS_MV (pCurDqLayer->pRefIndex[LIST_0], pCurDqLayer->pMv[LIST_0], iMbXy, iNeighMb, *pBIdx, | |
| 244 | + *pBnIdx); | |
| 245 | 245 | } |
| 246 | − uiBIdx = uiBIdx >> 8; | |
| 247 | − uiBnIdx = uiBnIdx >> 8; | |
| 246 | + pBIdx++; | |
| 247 | + pBnIdx++; | |
| 248 | 248 | } |
| 249 | 249 | return uiBSx4; |
| 250 | 250 | } |