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 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); | 152 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 153 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); | 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 | nBS[0][1][0] = uiBsx3[0]; | 156 | nBS[0][1][0] = uiBsx3[0]; |
| 157 | nBS[0][2][0] = uiBsx3[1]; | 157 | nBS[0][2][0] = uiBsx3[1]; |
| 158 | nBS[0][3][0] = uiBsx3[2]; | 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 | nBS[0][1][1] = uiBsx3[0]; | 161 | nBS[0][1][1] = uiBsx3[0]; |
| 162 | nBS[0][2][1] = uiBsx3[1]; | 162 | nBS[0][2][1] = uiBsx3[1]; |
| 163 | nBS[0][3][1] = uiBsx3[2]; | 163 | nBS[0][3][1] = uiBsx3[2]; |
| 164 | * (uint32_t*)nBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor; | 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 | nBS[0][1][2] = uiBsx3[0]; | 167 | nBS[0][1][2] = uiBsx3[0]; |
| 168 | nBS[0][2][2] = uiBsx3[1]; | 168 | nBS[0][2][2] = uiBsx3[1]; |
| 169 | nBS[0][3][2] = uiBsx3[2]; | 169 | nBS[0][3][2] = uiBsx3[2]; |
| 170 | * (uint32_t*)nBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor; | 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 | nBS[0][1][3] = uiBsx3[0]; | 173 | nBS[0][1][3] = uiBsx3[0]; |
| 174 | nBS[0][2][3] = uiBsx3[1]; | 174 | nBS[0][2][3] = uiBsx3[1]; |
| 175 | nBS[0][3][3] = uiBsx3[2]; | 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 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); | 188 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 189 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); | 189 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); |
| 190 | 190 | ||
| 191 | * (uint32_t*)uiBsx4 = (uiNnz32b0 | (uiNnz32b0 >> 8)); | 191 | * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b0); |
| 192 | nBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 1, 0); | 192 | nBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 1, 0); |
| 193 | nBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 2, 1); | 193 | nBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 2, 1); |
| 194 | nBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 3, 2); | 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 | nBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 5, 4); | 197 | nBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 5, 4); |
| 198 | nBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 6, 5); | 198 | nBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 6, 5); |
| 199 | nBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 7, 6); | 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 | nBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 9, 8); | 202 | nBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 9, 8); |
| 203 | nBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 10, 9); | 203 | nBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 10, 9); |
| 204 | nBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 11, 10); | 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 | nBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 13, 12); | 207 | nBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 13, 12); |
| 208 | nBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 14, 13); | 208 | nBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 14, 13); |
| 209 | nBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 15, 14); | 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 | uint32_t uiBSx4; | 233 | uint32_t uiBSx4; |
| 234 | //uint8_t* bS = static_cast<uint8_t*>(&uiBSx4); | 234 | //uint8_t* bS = static_cast<uint8_t*>(&uiBSx4); |
| 235 | uint8_t* pBS = (uint8_t*) (&uiBSx4); | 235 | uint8_t* pBS = (uint8_t*) (&uiBSx4); |
| 236 | uint32_t uiBIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][0]); | 236 | const uint8_t *pBIdx = &g_kuiTableBIdx[iEdge][0]; |
| 237 | uint32_t uiBnIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][4]); | 237 | const uint8_t *pBnIdx = &g_kuiTableBIdx[iEdge][4]; |
| 238 | 238 | ||
| 239 | for (i = 0; i < 4; i++) { | 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 | pBS[i] = 2; | 241 | pBS[i] = 2; |
| 242 | } else { | 242 | } else { |
| 243 | pBS[i] = MB_BS_MV (pCurDqLayer->pRefIndex[LIST_0], pCurDqLayer->pMv[LIST_0], iMbXy, iNeighMb, (uiBIdx & 0xff), | 243 | pBS[i] = MB_BS_MV (pCurDqLayer->pRefIndex[LIST_0], pCurDqLayer->pMv[LIST_0], iMbXy, iNeighMb, *pBIdx, |
| 244 | (uiBnIdx & 0xff)); | 244 | *pBnIdx); |
| 245 | } | 245 | } |
| 246 | uiBIdx = uiBIdx >> 8; | 246 | pBIdx++; |
| 247 | uiBnIdx = uiBnIdx >> 8; | 247 | pBnIdx++; |
| 248 | } | 248 | } |
| 249 | return uiBSx4; | 249 | return uiBSx4; |
| 250 | } | 250 | } |