Make the library work on big endian
Showing the changes to codec/encoder/core/src/deblocking.cpp (1 of 4 files). Show all
Unified · Split
| @@ -163,24 +163,24 @@ void inline DeblockingBSInsideMBAvsbase (int8_t* pNnzTab, uint8_t uiBS[2][4][4], · 162 unmodified lines | |||
| 163 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); | 163 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 164 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); | 164 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); |
| 165 | 165 | ||
| 166 | * (uint32_t*)uiBsx3 = (uiNnz32b0 | (uiNnz32b0 >> 8)) << iLShiftFactor; | 166 | * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b0) << iLShiftFactor; |
| 167 | uiBS[0][1][0] = uiBsx3[0]; | 167 | uiBS[0][1][0] = uiBsx3[0]; |
| 168 | uiBS[0][2][0] = uiBsx3[1]; | 168 | uiBS[0][2][0] = uiBsx3[1]; |
| 169 | uiBS[0][3][0] = uiBsx3[2]; | 169 | uiBS[0][3][0] = uiBsx3[2]; |
| 170 | 170 | ||
| 171 | * (uint32_t*)uiBsx3 = (uiNnz32b1 | (uiNnz32b1 >> 8)) << iLShiftFactor; | 171 | * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b1) << iLShiftFactor; |
| 172 | uiBS[0][1][1] = uiBsx3[0]; | 172 | uiBS[0][1][1] = uiBsx3[0]; |
| 173 | uiBS[0][2][1] = uiBsx3[1]; | 173 | uiBS[0][2][1] = uiBsx3[1]; |
| 174 | uiBS[0][3][1] = uiBsx3[2]; | 174 | uiBS[0][3][1] = uiBsx3[2]; |
| 175 | * (uint32_t*)uiBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor; | 175 | * (uint32_t*)uiBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor; |
| 176 | 176 | ||
| 177 | * (uint32_t*)uiBsx3 = (uiNnz32b2 | (uiNnz32b2 >> 8)) << iLShiftFactor; | 177 | * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b2) << iLShiftFactor; |
| 178 | uiBS[0][1][2] = uiBsx3[0]; | 178 | uiBS[0][1][2] = uiBsx3[0]; |
| 179 | uiBS[0][2][2] = uiBsx3[1]; | 179 | uiBS[0][2][2] = uiBsx3[1]; |
| 180 | uiBS[0][3][2] = uiBsx3[2]; | 180 | uiBS[0][3][2] = uiBsx3[2]; |
| 181 | * (uint32_t*)uiBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor; | 181 | * (uint32_t*)uiBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor; |
| 182 | 182 | ||
| 183 | * (uint32_t*)uiBsx3 = (uiNnz32b3 | (uiNnz32b3 >> 8)) << iLShiftFactor; | 183 | * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b3) << iLShiftFactor; |
| 184 | uiBS[0][1][3] = uiBsx3[0]; | 184 | uiBS[0][1][3] = uiBsx3[0]; |
| 185 | uiBS[0][2][3] = uiBsx3[1]; | 185 | uiBS[0][2][3] = uiBsx3[1]; |
| 186 | uiBS[0][3][3] = uiBsx3[2]; | 186 | uiBS[0][3][3] = uiBsx3[2]; |
| @@ -197,22 +197,22 @@ void inline DeblockingBSInsideMBNormal (SMB* pCurMb, uint8_t uiBS[2][4][4], int8 · 10 unmodified lines | |||
| 197 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); | 197 | uiNnz32b2 = * (uint32_t*) (pNnzTab + 8); |
| 198 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); | 198 | uiNnz32b3 = * (uint32_t*) (pNnzTab + 12); |
| 199 | 199 | ||
| 200 | * (uint32_t*)uiBsx4 = (uiNnz32b0 | (uiNnz32b0 >> 8)); | 200 | * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b0); |
| 201 | uiBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 1, 0); | 201 | uiBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 1, 0); |
| 202 | uiBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 2, 1); | 202 | uiBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 2, 1); |
| 203 | uiBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 3, 2); | 203 | uiBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 3, 2); |
| 204 | 204 | ||
| 205 | * (uint32_t*)uiBsx4 = (uiNnz32b1 | (uiNnz32b1 >> 8)); | 205 | * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b1); |
| 206 | uiBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 5, 4); | 206 | uiBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 5, 4); |
| 207 | uiBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 6, 5); | 207 | uiBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 6, 5); |
| 208 | uiBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 7, 6); | 208 | uiBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 7, 6); |
| 209 | 209 | ||
| 210 | * (uint32_t*)uiBsx4 = (uiNnz32b2 | (uiNnz32b2 >> 8)); | 210 | * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b2); |
| 211 | uiBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 9, 8); | 211 | uiBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 9, 8); |
| 212 | uiBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 10, 9); | 212 | uiBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 10, 9); |
| 213 | uiBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 11, 10); | 213 | uiBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 11, 10); |
| 214 | 214 | ||
| 215 | * (uint32_t*)uiBsx4 = (uiNnz32b3 | (uiNnz32b3 >> 8)); | 215 | * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b3); |
| 216 | uiBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 13, 12); | 216 | uiBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIdx, pCurMb->sMv, 13, 12); |
| 217 | uiBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 14, 13); | 217 | uiBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIdx, pCurMb->sMv, 14, 13); |
| 218 | uiBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 15, 14); | 218 | uiBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIdx, pCurMb->sMv, 15, 14); |
| @@ -241,21 +241,22 @@ uint32_t DeblockingBSMarginalMBAvcbase (SMB* pCurMb, SMB* pNeighMb, int32_t iEdg · 22 unmodified lines | |||
| 241 | int32_t i; | 241 | int32_t i; |
| 242 | uint32_t uiBSx4; | 242 | uint32_t uiBSx4; |
| 243 | uint8_t* pBS = (uint8_t*) (&uiBSx4); | 243 | uint8_t* pBS = (uint8_t*) (&uiBSx4); |
| 244 | uint32_t uiBIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][0]); | 244 | const uint8_t *pBIdx = &g_kuiTableBIdx[iEdge][0]; |
| 245 | uint32_t uiBnIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][4]); | 245 | const uint8_t *pBnIdx = &g_kuiTableBIdx[iEdge][4]; |
| 246 | |||
| 246 | 247 | ||
| 247 | for (i = 0; i < 4; i++) { | 248 | for (i = 0; i < 4; i++) { |
| 248 | if (pCurMb->pNonZeroCount[uiBIdx & 0xff] | pNeighMb->pNonZeroCount[uiBnIdx & 0xff]) { | 249 | if (pCurMb->pNonZeroCount[*pBIdx] | pNeighMb->pNonZeroCount[*pBnIdx]) { |
| 249 | pBS[i] = 2; | 250 | pBS[i] = 2; |
| 250 | } else { | 251 | } else { |
| 251 | pBS[i] = | 252 | pBS[i] = |
| 252 | #ifndef SINGLE_REF_FRAME | 253 | #ifndef SINGLE_REF_FRAME |
| 253 | (pCurMb->uiRefIndex[g_kiTableBlock8x8Idx[1][iEdge][i]] - pNeighMb->uiRefIndex[g_kiTableBlock8x8NIdx[1][iEdge][i]]) || | 254 | (pCurMb->uiRefIndex[g_kiTableBlock8x8Idx[1][iEdge][i]] - pNeighMb->uiRefIndex[g_kiTableBlock8x8NIdx[1][iEdge][i]]) || |
| 254 | #endif | 255 | #endif |
| 255 | MB_BS_MV (pCurMb->sMv, pNeighMb->sMv, (uiBIdx & 0xff), (uiBnIdx & 0xff)); | 256 | MB_BS_MV (pCurMb->sMv, pNeighMb->sMv, *pBIdx, *pBnIdx); |
| 256 | } | 257 | } |
| 257 | uiBIdx = uiBIdx >> 8; | 258 | pBIdx++; |
| 258 | uiBnIdx = uiBnIdx >> 8; | 259 | pBnIdx++; |
| 259 | } | 260 | } |
| 260 | return uiBSx4; | 261 | return uiBSx4; |
| 261 | } | 262 | } |