History

Don't read an uint8_t array as an uint32_t

This makes the code work properly on big endian. The MC case is similar to how it's done in the encoder. Neither of these should have any significant performance impact.

Martin Storsjö committed 12 years ago

Commit 47ec7881 parent e413ed23 files · +19 −18Browse files

Showing the changes to codec/encoder/core/src/deblocking.cpp (1 of 3 files). Show all

Unified · Split

codec/encoder/core/src/deblocking.cpp+7−6
@@ -242,21 +242,22 @@ uint32_t DeblockingBSMarginalMBAvcbase (SMB* pCurMb, SMB* pNeighMb, int32_t iEdg · 241 unmodified lines
242 int32_t i;242 int32_t i;
243 uint32_t uiBSx4;243 uint32_t uiBSx4;
244 uint8_t* pBS = (uint8_t*) (&uiBSx4);244 uint8_t* pBS = (uint8_t*) (&uiBSx4);
245 uint32_t uiBIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][0]);245 const uint8_t *pBIdx = &g_kuiTableBIdx[iEdge][0];
246 uint32_t uiBnIdx = * (uint32_t*) (&g_kuiTableBIdx[iEdge][4]);246 const uint8_t *pBnIdx = &g_kuiTableBIdx[iEdge][4];
247
247 248
248 for (i = 0; i < 4; i++) {249 for (i = 0; i < 4; i++) {
249 if (pCurMb->pNonZeroCount[uiBIdx & 0xff] | pNeighMb->pNonZeroCount[uiBnIdx & 0xff]) {250 if (pCurMb->pNonZeroCount[*pBIdx] | pNeighMb->pNonZeroCount[*pBnIdx]) {
250 pBS[i] = 2;251 pBS[i] = 2;
251 } else {252 } else {
252 pBS[i] =253 pBS[i] =
253#ifndef SINGLE_REF_FRAME254#ifndef SINGLE_REF_FRAME
254 (pCurMb->uiRefIndex[g_kiTableBlock8x8Idx[1][iEdge][i]] - pNeighMb->uiRefIndex[g_kiTableBlock8x8NIdx[1][iEdge][i]]) ||255 (pCurMb->uiRefIndex[g_kiTableBlock8x8Idx[1][iEdge][i]] - pNeighMb->uiRefIndex[g_kiTableBlock8x8NIdx[1][iEdge][i]]) ||
255#endif256#endif
256 MB_BS_MV (pCurMb->sMv, pNeighMb->sMv, (uiBIdx & 0xff), (uiBnIdx & 0xff));257 MB_BS_MV (pCurMb->sMv, pNeighMb->sMv, *pBIdx, *pBnIdx);
257 }258 }
258 uiBIdx = uiBIdx >> 8;259 pBIdx++;
259 uiBnIdx = uiBnIdx >> 8;260 pBnIdx++;
260 }261 }
261 return uiBSx4;262 return uiBSx4;
262}263}

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