return ff_ue_golomb_vlc_code[buf];
}
-static inline int svq3_get_ue_golomb(GetBitContext *gb){
+static inline unsigned svq3_get_ue_golomb(GetBitContext *gb)
+{
uint32_t buf;
OPEN_READER(re, gb);
return ff_interleaved_ue_golomb_vlc_code[buf];
}else{
- int ret = 1;
+ unsigned ret = 1;
do {
buf >>= 32 - 8;
ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];
UPDATE_CACHE(re, gb);
buf = GET_CACHE(re, gb);
- } while (ret);
+ } while (HAVE_BITS_REMAINING(re, gb));
CLOSE_READER(re, gb);
return ret - 1;
return buf;
}else{
int i;
- for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0; i++) {
+ for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0 && HAVE_BITS_REMAINING(re, gb); i++) {
LAST_SKIP_BITS(re, gb, 1);
UPDATE_CACHE(re, gb);
}
#ifdef TRACE
-static inline int get_ue(GetBitContext *s, char *file, const char *func, int line){
+static inline int get_ue(GetBitContext *s, const char *file, const char *func,
+ int line)
+{
int show= show_bits(s, 24);
int pos= get_bits_count(s);
int i= get_ue_golomb(s);
return i;
}
-static inline int get_se(GetBitContext *s, char *file, const char *func, int line){
+static inline int get_se(GetBitContext *s, const char *file, const char *func,
+ int line)
+{
int show= show_bits(s, 24);
int pos= get_bits_count(s);
int i= get_se_golomb(s);
* write signed exp golomb code. 16 bits at most.
*/
static inline void set_se_golomb(PutBitContext *pb, int i){
-// if (i>32767 || i<-32767)
-// av_log(NULL,AV_LOG_ERROR,"value out of range %d\n", i);
#if 0
if(i<=0) i= -2*i;
else i= 2*i-1;