Mercurial > libavcodec.hg
comparison golomb.h @ 2087:a4d3699c6636 libavcodec
1000l to the ffsvq3 author, our default bitstream reader is only guranteed to be able to read 25bit at a time
author | michael |
---|---|
date | Sat, 19 Jun 2004 01:14:13 +0000 |
parents | 6d762acfff5d |
children | 2a767157935e |
comparison
equal
deleted
inserted
replaced
2086:13811ac6ddc7 | 2087:a4d3699c6636 |
---|---|
78 LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]); | 78 LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]); |
79 CLOSE_READER(re, gb); | 79 CLOSE_READER(re, gb); |
80 | 80 |
81 return ff_interleaved_ue_golomb_vlc_code[buf]; | 81 return ff_interleaved_ue_golomb_vlc_code[buf]; |
82 }else{ | 82 }else{ |
83 buf|=1; | 83 LAST_SKIP_BITS(re, gb, 8); |
84 UPDATE_CACHE(re, gb); | |
85 buf |= 1 | (GET_CACHE(re, gb) >> 8); | |
86 | |
84 if((buf & 0xAAAAAAAA) == 0) | 87 if((buf & 0xAAAAAAAA) == 0) |
85 return INVALID_VLC; | 88 return INVALID_VLC; |
86 | 89 |
87 for(log=31; (buf & 0x80000000) == 0; log--){ | 90 for(log=31; (buf & 0x80000000) == 0; log--){ |
88 buf = (buf << 2) - ((buf << log) >> (log - 1)) + (buf >> 30); | 91 buf = (buf << 2) - ((buf << log) >> (log - 1)) + (buf >> 30); |
89 } | 92 } |
90 | 93 |
91 LAST_SKIP_BITS(re, gb, 63 - 2*log); | 94 LAST_SKIP_BITS(re, gb, 63 - 2*log - 8); |
92 CLOSE_READER(re, gb); | 95 CLOSE_READER(re, gb); |
93 | 96 |
94 return ((buf << log) >> log) - 1; | 97 return ((buf << log) >> log) - 1; |
95 } | 98 } |
96 } | 99 } |