*/
/**
- * @file rangecoder.c
+ * @file
* Range coder.
* based upon
* "Range encoding: an algorithm for removing redundancy from a digitised
return c->bytestream - c->bytestream_start;
}
-#if 0 //selftest
+#ifdef TEST
#define SIZE 10240
-int main(){
+
+#include "libavutil/lfg.h"
+
+int main(void){
RangeCoder c;
uint8_t b[9*SIZE];
uint8_t r[9*SIZE];
int i;
uint8_t state[10]= {0};
+ AVLFG prng;
+
+ av_lfg_init(&prng, 1);
ff_init_range_encoder(&c, b, SIZE);
ff_build_rac_states(&c, 0.05*(1LL<<32), 128+64+32+16);
memset(state, 128, sizeof(state));
for(i=0; i<SIZE; i++){
- r[i]= random()%7;
+ r[i] = av_lfg_get(&prng) % 7;
}
for(i=0; i<SIZE; i++){
STOP_TIMER("put_rac")
}
- ff_put_rac_terminate(&c);
+ ff_rac_terminate(&c);
ff_init_range_decoder(&c, b, SIZE);
return 0;
}
-#endif
+#endif /* TEST */