Mercurial > libavcodec.hg
comparison common.h @ 21:20e680e7a490 libavcodec
get_bits() specialization, gives 4\speedup
author | arpi_esp |
---|---|
date | Sat, 04 Aug 2001 00:46:50 +0000 |
parents | 907b67420d84 |
children | 5aa6292a1660 |
comparison
equal
deleted
inserted
replaced
20:907b67420d84 | 21:20e680e7a490 |
---|---|
77 #endif | 77 #endif |
78 return val; | 78 return val; |
79 } | 79 } |
80 return get_bits_long(s,n); | 80 return get_bits_long(s,n); |
81 } | 81 } |
82 | |
83 static inline unsigned int get_bits1(GetBitContext *s){ | |
84 if(s->bit_cnt>0){ | |
85 /* most common case here */ | |
86 unsigned int val = s->bit_buf >> 31; | |
87 s->bit_buf <<= 1; | |
88 s->bit_cnt--; | |
89 #ifdef STATS | |
90 st_bit_counts[st_current_index]++; | |
91 #endif | |
92 return val; | |
93 } | |
94 return get_bits_long(s,1); | |
95 } | |
96 | |
97 static inline void skip_bits(GetBitContext *s, int n){ | |
98 if(s->bit_cnt>=n){ | |
99 /* most common case here */ | |
100 s->bit_buf <<= n; | |
101 s->bit_cnt -= n; | |
102 #ifdef STATS | |
103 st_bit_counts[st_current_index] += n; | |
104 #endif | |
105 } else { | |
106 get_bits_long(s,n); | |
107 } | |
108 } | |
109 | |
110 static inline void skip_bits1(GetBitContext *s){ | |
111 if(s->bit_cnt>0){ | |
112 /* most common case here */ | |
113 s->bit_buf <<= 1; | |
114 s->bit_cnt--; | |
115 #ifdef STATS | |
116 st_bit_counts[st_current_index]++; | |
117 #endif | |
118 } else { | |
119 get_bits_long(s,1); | |
120 } | |
121 } | |
122 | |
82 | 123 |
83 void align_get_bits(GetBitContext *s); | 124 void align_get_bits(GetBitContext *s); |
84 int init_vlc(VLC *vlc, int nb_bits, int nb_codes, | 125 int init_vlc(VLC *vlc, int nb_bits, int nb_codes, |
85 const void *bits, int bits_wrap, int bits_size, | 126 const void *bits, int bits_wrap, int bits_size, |
86 const void *codes, int codes_wrap, int codes_size); | 127 const void *codes, int codes_wrap, int codes_size); |