|
|
@ -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 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; |
|
|
|
int i, off; |
|
|
|
uint32_t c; |
|
|
|
uint32_t c; |
|
|
|
const uint32_t* buf; |
|
|
|
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; |
|
|
|
off = (intptr_t)inbuffer & 3; |
|
|
|
buf = (const uint32_t*) (inbuffer - off); |
|
|
|
buf = (const uint32_t*) (inbuffer - off); |
|
|
|
c = av_be2ne32((0x37c511f2 >> (off*8)) | (0x37c511f2 << (32-(off*8)))); |
|
|
|
c = tab[off]; |
|
|
|
bytes += 3 + off; |
|
|
|
bytes += 3 + off; |
|
|
|
for (i = 0; i < bytes/4; i++) |
|
|
|
for (i = 0; i < bytes/4; i++) |
|
|
|
obuf[i] = c ^ buf[i]; |
|
|
|
obuf[i] = c ^ buf[i]; |
|
|
|