Mercurial > libavcodec.hg
comparison golomb.h @ 1169:4e891257d3e2 libavcodec
multiple reference frames support
author | michaelni |
---|---|
date | Fri, 04 Apr 2003 20:59:50 +0000 |
parents | 5af9aeadbdc3 |
children | fc2a7eefa9cc |
comparison
equal
deleted
inserted
replaced
1168:5af9aeadbdc3 | 1169:4e891257d3e2 |
---|---|
64 */ | 64 */ |
65 static inline int get_te0_golomb(GetBitContext *gb, int range){ | 65 static inline int get_te0_golomb(GetBitContext *gb, int range){ |
66 assert(range >= 1); | 66 assert(range >= 1); |
67 | 67 |
68 if(range==1) return 0; | 68 if(range==1) return 0; |
69 else if(range==2) return get_bits1(gb); | 69 else if(range==2) return get_bits1(gb)^1; |
70 else return get_ue_golomb(gb); | 70 else return get_ue_golomb(gb); |
71 } | 71 } |
72 | 72 |
73 /** | 73 /** |
74 * read unsigned truncated exp golomb code. | 74 * read unsigned truncated exp golomb code. |
75 */ | 75 */ |
76 static inline int get_te_golomb(GetBitContext *gb, int range){ | 76 static inline int get_te_golomb(GetBitContext *gb, int range){ |
77 assert(range >= 1); | 77 assert(range >= 1); |
78 | 78 |
79 if(range==2) return get_bits1(gb); | 79 if(range==2) return get_bits1(gb)^1; |
80 else return get_ue_golomb(gb); | 80 else return get_ue_golomb(gb); |
81 } | 81 } |
82 | 82 |
83 | 83 |
84 /** | 84 /** |
191 */ | 191 */ |
192 static inline void set_te_golomb(PutBitContext *pb, int i, int range){ | 192 static inline void set_te_golomb(PutBitContext *pb, int i, int range){ |
193 assert(range >= 1); | 193 assert(range >= 1); |
194 assert(i<=range); | 194 assert(i<=range); |
195 | 195 |
196 if(range==2) put_bits(pb, 1, i); | 196 if(range==2) put_bits(pb, 1, i^1); |
197 else set_ue_golomb(pb, i); | 197 else set_ue_golomb(pb, i); |
198 } | 198 } |
199 | 199 |
200 /** | 200 /** |
201 * write signed exp golomb code. | 201 * write signed exp golomb code. |