Module: libav Branch: master Commit: b7581b5c839d1e293bb9dc34352a76df9d3158a9
Author: Mans Rullgard <[email protected]> Committer: Mans Rullgard <[email protected]> Date: Fri Nov 25 20:43:05 2011 +0000 cook: use a table for xor key rotation This is simpler and avoids an invalid shift by 32 in the aligned case. Signed-off-by: Mans Rullgard <[email protected]> --- libavcodec/cook.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/libavcodec/cook.c b/libavcodec/cook.c index 186c3e7..8b0a351 100644 --- a/libavcodec/cook.c +++ b/libavcodec/cook.c @@ -273,6 +273,10 @@ static av_cold void init_cplscales_table (COOKContext *q) { */ static inline int decode_bytes(const uint8_t* inbuffer, uint8_t* out, int bytes){ + static const uint32_t tab[4] = { + AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511), + AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237), + }; int i, off; uint32_t c; const uint32_t* buf; @@ -285,7 +289,7 @@ static inline int decode_bytes(const uint8_t* inbuffer, uint8_t* out, int bytes) off = (intptr_t)inbuffer & 3; buf = (const uint32_t*) (inbuffer - off); - c = av_be2ne32((0x37c511f2 >> (off*8)) | (0x37c511f2 << (32-(off*8)))); + c = tab[off]; bytes += 3 + off; for (i = 0; i < bytes/4; i++) obuf[i] = c ^ buf[i]; _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
