diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-11-27 03:30:13 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-11-27 03:30:13 +0400 |
commit | 5c15b78e4a47c46de03d5e7291ed19a717f36885 (patch) | |
tree | a88ba284818fa1b64b1da37872bb4a60bd66a976 /libavcodec/cook.c | |
parent | 22cb8e7b3436b6ad12e4e2d588dd8775d2da1684 (diff) | |
parent | 7c5ce99bd92fb480b7235cbc9a005f7e6d31f1d7 (diff) |
Merge remote-tracking branch 'qatar/master'
* qatar/master: (42 commits)
swscale: fix signed overflow in yuv2mono_X_c_template
snow: fix integer overflows
svq1enc: remove stale altivec-related hack
snow: fix signed overflow in byte to 32-bit replication
adx: rename ff_adx_decode_header() to avpriv_adx_decode_header()
avformat: add CRI ADX format demuxer
adx: add an ADX parser.
adx: move header decoding to ADX common code
adx: calculate the number of blocks in a packet
adx: define and use 2 new macro constants BLOCK_SIZE and BLOCK_SAMPLES
adx: check for unsupported ADX formats
adx: simplify encoding by using put_sbits()
adx: calculate correct LPC coeffs
adx: use 12-bit coefficients instead of 14-bit to avoid integer overflow
adx: simplify adx_decode() by using get_sbits() to read residual samples
adx: fix the data offset parsing in adx_decode_header()
adx: remove unneeded post-decode channel interleaving
adx: validate header values
adx: cosmetics: general pretty-printing and comment clean-up
adx: remove useless comments
...
Conflicts:
Changelog
libavcodec/cook.c
libavcodec/fraps.c
libavcodec/nuv.c
libavcodec/pthread.c
libavcodec/version.h
libavformat/Makefile
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/cook.c')
-rw-r--r-- | libavcodec/cook.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/cook.c b/libavcodec/cook.c index 4c750134d0..6a076d9310 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]; @@ -1075,7 +1079,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx) q->subpacket[s].subbands = bytestream_get_be16(&edata_ptr); extradata_size -= 8; } - if (extradata_size >= 8){ + if (extradata_size >= 8) { bytestream_get_be32(&edata_ptr); //Unknown unused q->subpacket[s].js_subband_start = bytestream_get_be16(&edata_ptr); q->subpacket[s].js_vlc_bits = bytestream_get_be16(&edata_ptr); |