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);