Originally committed as revision 18070 to svn://svn.ffmpeg.org/ffmpeg/trunk
| ... | ... |
@@ -179,9 +179,9 @@ void ff_init_cabac_states(CABACContext *c){
|
| 179 | 179 |
} |
| 180 | 180 |
|
| 181 | 181 |
#ifdef TEST |
| 182 |
-#undef random |
|
| 183 | 182 |
#define SIZE 10240 |
| 184 | 183 |
|
| 184 |
+#include "libavutil/lfg.h" |
|
| 185 | 185 |
#include "avcodec.h" |
| 186 | 186 |
#include "cabac.h" |
| 187 | 187 |
|
| ... | ... |
@@ -191,12 +191,14 @@ int main(void){
|
| 191 | 191 |
uint8_t r[9*SIZE]; |
| 192 | 192 |
int i; |
| 193 | 193 |
uint8_t state[10]= {0};
|
| 194 |
+ AVLFG prn; |
|
| 194 | 195 |
|
| 196 |
+ av_lfg_init(&prn, 1); |
|
| 195 | 197 |
ff_init_cabac_encoder(&c, b, SIZE); |
| 196 | 198 |
ff_init_cabac_states(&c); |
| 197 | 199 |
|
| 198 | 200 |
for(i=0; i<SIZE; i++){
|
| 199 |
- r[i]= random()%7; |
|
| 201 |
+ r[i] = av_lfg_get(&prn) % 7; |
|
| 200 | 202 |
} |
| 201 | 203 |
|
| 202 | 204 |
for(i=0; i<SIZE; i++){
|
| ... | ... |
@@ -33,6 +33,7 @@ |
| 33 | 33 |
#include <math.h> |
| 34 | 34 |
|
| 35 | 35 |
#include "libavutil/common.h" |
| 36 |
+#include "libavutil/lfg.h" |
|
| 36 | 37 |
|
| 37 | 38 |
#include "simple_idct.h" |
| 38 | 39 |
#include "aandcttab.h" |
| ... | ... |
@@ -41,7 +42,6 @@ |
| 41 | 41 |
#include "x86/idct_xvid.h" |
| 42 | 42 |
|
| 43 | 43 |
#undef printf |
| 44 |
-#undef random |
|
| 45 | 44 |
|
| 46 | 45 |
void *fast_memcpy(void *a, const void *b, size_t c){return memcpy(a,b,c);};
|
| 47 | 46 |
|
| ... | ... |
@@ -208,8 +208,9 @@ void dct_error(const char *name, int is_idct, |
| 208 | 208 |
int64_t sysErr[64], sysErrMax=0; |
| 209 | 209 |
int maxout=0; |
| 210 | 210 |
int blockSumErrMax=0, blockSumErr; |
| 211 |
+ AVLFG prn; |
|
| 211 | 212 |
|
| 212 |
- srandom(0); |
|
| 213 |
+ av_lfg_init(&prn, 1); |
|
| 213 | 214 |
|
| 214 | 215 |
err_inf = 0; |
| 215 | 216 |
err2 = 0; |
| ... | ... |
@@ -220,7 +221,7 @@ void dct_error(const char *name, int is_idct, |
| 220 | 220 |
switch(test){
|
| 221 | 221 |
case 0: |
| 222 | 222 |
for(i=0;i<64;i++) |
| 223 |
- block1[i] = (random() % 512) -256; |
|
| 223 |
+ block1[i] = (av_lfg_get(&prn) % 512) -256; |
|
| 224 | 224 |
if (is_idct){
|
| 225 | 225 |
fdct(block1); |
| 226 | 226 |
|
| ... | ... |
@@ -229,12 +230,12 @@ void dct_error(const char *name, int is_idct, |
| 229 | 229 |
} |
| 230 | 230 |
break; |
| 231 | 231 |
case 1:{
|
| 232 |
- int num= (random()%10)+1; |
|
| 232 |
+ int num = av_lfg_get(&prn) % 10 + 1; |
|
| 233 | 233 |
for(i=0;i<num;i++) |
| 234 |
- block1[random()%64] = (random() % 512) -256; |
|
| 234 |
+ block1[av_lfg_get(&prn) % 64] = av_lfg_get(&prn) % 512 -256; |
|
| 235 | 235 |
}break; |
| 236 | 236 |
case 2: |
| 237 |
- block1[0]= (random()%4096)-2048; |
|
| 237 |
+ block1[0] = av_lfg_get(&prn) % 4096 - 2048; |
|
| 238 | 238 |
block1[63]= (block1[0]&1)^1; |
| 239 | 239 |
break; |
| 240 | 240 |
} |
| ... | ... |
@@ -334,7 +335,7 @@ void dct_error(const char *name, int is_idct, |
| 334 | 334 |
switch(test){
|
| 335 | 335 |
case 0: |
| 336 | 336 |
for(i=0;i<64;i++) |
| 337 |
- block1[i] = (random() % 512) -256; |
|
| 337 |
+ block1[i] = av_lfg_get(&prn) % 512 -256; |
|
| 338 | 338 |
if (is_idct){
|
| 339 | 339 |
fdct(block1); |
| 340 | 340 |
|
| ... | ... |
@@ -344,10 +345,10 @@ void dct_error(const char *name, int is_idct, |
| 344 | 344 |
break; |
| 345 | 345 |
case 1:{
|
| 346 | 346 |
case 2: |
| 347 |
- block1[0] = (random() % 512) -256; |
|
| 348 |
- block1[1] = (random() % 512) -256; |
|
| 349 |
- block1[2] = (random() % 512) -256; |
|
| 350 |
- block1[3] = (random() % 512) -256; |
|
| 347 |
+ block1[0] = av_lfg_get(&prn) % 512 -256; |
|
| 348 |
+ block1[1] = av_lfg_get(&prn) % 512 -256; |
|
| 349 |
+ block1[2] = av_lfg_get(&prn) % 512 -256; |
|
| 350 |
+ block1[3] = av_lfg_get(&prn) % 512 -256; |
|
| 351 | 351 |
}break; |
| 352 | 352 |
} |
| 353 | 353 |
|
| ... | ... |
@@ -471,7 +472,9 @@ void idct248_error(const char *name, |
| 471 | 471 |
{
|
| 472 | 472 |
int it, i, it1, ti, ti1, err_max, v; |
| 473 | 473 |
|
| 474 |
- srandom(0); |
|
| 474 |
+ AVLFG prn; |
|
| 475 |
+ |
|
| 476 |
+ av_lfg_init(&prn, 1); |
|
| 475 | 477 |
|
| 476 | 478 |
/* just one test to see if code is correct (precision is less |
| 477 | 479 |
important here) */ |
| ... | ... |
@@ -480,7 +483,7 @@ void idct248_error(const char *name, |
| 480 | 480 |
|
| 481 | 481 |
/* XXX: use forward transform to generate values */ |
| 482 | 482 |
for(i=0;i<64;i++) |
| 483 |
- block1[i] = (random() % 256) - 128; |
|
| 483 |
+ block1[i] = av_lfg_get(&prn) % 256 - 128; |
|
| 484 | 484 |
block1[0] += 1024; |
| 485 | 485 |
|
| 486 | 486 |
for(i=0; i<64; i++) |
| ... | ... |
@@ -23,6 +23,7 @@ |
| 23 | 23 |
* FFT and MDCT tests. |
| 24 | 24 |
*/ |
| 25 | 25 |
|
| 26 |
+#include "libavutil/lfg.h" |
|
| 26 | 27 |
#include "dsputil.h" |
| 27 | 28 |
#include <math.h> |
| 28 | 29 |
#include <unistd.h> |
| ... | ... |
@@ -31,7 +32,6 @@ |
| 31 | 31 |
#include <string.h> |
| 32 | 32 |
|
| 33 | 33 |
#undef exit |
| 34 |
-#undef random |
|
| 35 | 34 |
|
| 36 | 35 |
/* reference fft */ |
| 37 | 36 |
|
| ... | ... |
@@ -131,7 +131,9 @@ void mdct_ref(float *output, float *input, int nbits) |
| 131 | 131 |
|
| 132 | 132 |
float frandom(void) |
| 133 | 133 |
{
|
| 134 |
- return (float)((random() & 0xffff) - 32768) / 32768.0; |
|
| 134 |
+ AVLFG prn; |
|
| 135 |
+ av_lfg_init(&prn, 1); |
|
| 136 |
+ return (float)((av_lfg_get(&prn) & 0xffff) - 32768) / 32768.0; |
|
| 135 | 137 |
} |
| 136 | 138 |
|
| 137 | 139 |
int64_t gettime(void) |
| ... | ... |
@@ -30,10 +30,10 @@ |
| 30 | 30 |
#include <unistd.h> |
| 31 | 31 |
|
| 32 | 32 |
#include "dsputil.h" |
| 33 |
+#include "libavutil/lfg.h" |
|
| 33 | 34 |
|
| 34 | 35 |
#undef exit |
| 35 | 36 |
#undef printf |
| 36 |
-#undef random |
|
| 37 | 37 |
|
| 38 | 38 |
#define WIDTH 64 |
| 39 | 39 |
#define HEIGHT 64 |
| ... | ... |
@@ -44,9 +44,12 @@ uint8_t img2[WIDTH * HEIGHT]; |
| 44 | 44 |
void fill_random(uint8_t *tab, int size) |
| 45 | 45 |
{
|
| 46 | 46 |
int i; |
| 47 |
+ AVLFG prn; |
|
| 48 |
+ |
|
| 49 |
+ av_lfg_init(&prn, 1); |
|
| 47 | 50 |
for(i=0;i<size;i++) {
|
| 48 | 51 |
#if 1 |
| 49 |
- tab[i] = random() % 256; |
|
| 52 |
+ tab[i] = av_lfg_get(&prn) % 256; |
|
| 50 | 53 |
#else |
| 51 | 54 |
tab[i] = i; |
| 52 | 55 |
#endif |
| ... | ... |
@@ -142,7 +145,7 @@ int main(int argc, char **argv) |
| 142 | 142 |
ctx = avcodec_alloc_context(); |
| 143 | 143 |
ctx->dsp_mask = FF_MM_FORCE; |
| 144 | 144 |
dsputil_init(&cctx, ctx); |
| 145 |
- for (c = 0; c < 2; c++) {
|
|
| 145 |
+ for (c = 0; c < 1; c++) {
|
|
| 146 | 146 |
int x; |
| 147 | 147 |
ctx->dsp_mask = FF_MM_FORCE | flags[c]; |
| 148 | 148 |
dsputil_init(&mmxctx, ctx); |
| ... | ... |
@@ -111,13 +111,18 @@ int ff_rac_terminate(RangeCoder *c){
|
| 111 | 111 |
|
| 112 | 112 |
#ifdef TEST |
| 113 | 113 |
#define SIZE 10240 |
| 114 |
-#undef random |
|
| 114 |
+ |
|
| 115 |
+#include "libavutil/lfg.h" |
|
| 116 |
+ |
|
| 115 | 117 |
int main(void){
|
| 116 | 118 |
RangeCoder c; |
| 117 | 119 |
uint8_t b[9*SIZE]; |
| 118 | 120 |
uint8_t r[9*SIZE]; |
| 119 | 121 |
int i; |
| 120 | 122 |
uint8_t state[10]= {0};
|
| 123 |
+ AVLFG prn; |
|
| 124 |
+ |
|
| 125 |
+ av_lfg_init(&prn, 1); |
|
| 121 | 126 |
|
| 122 | 127 |
ff_init_range_encoder(&c, b, SIZE); |
| 123 | 128 |
ff_build_rac_states(&c, 0.05*(1LL<<32), 128+64+32+16); |
| ... | ... |
@@ -125,7 +130,7 @@ int main(void){
|
| 125 | 125 |
memset(state, 128, sizeof(state)); |
| 126 | 126 |
|
| 127 | 127 |
for(i=0; i<SIZE; i++){
|
| 128 |
- r[i]= random()%7; |
|
| 128 |
+ r[i] = av_lfg_get(&prn) % 7; |
|
| 129 | 129 |
} |
| 130 | 130 |
|
| 131 | 131 |
for(i=0; i<SIZE; i++){
|
| ... | ... |
@@ -4689,7 +4689,8 @@ AVCodec snow_encoder = {
|
| 4689 | 4689 |
#undef malloc |
| 4690 | 4690 |
#undef free |
| 4691 | 4691 |
#undef printf |
| 4692 |
-#undef random |
|
| 4692 |
+ |
|
| 4693 |
+#include "libavutil/lfg.h" |
|
| 4693 | 4694 |
|
| 4694 | 4695 |
int main(void){
|
| 4695 | 4696 |
int width=256; |
| ... | ... |
@@ -4699,10 +4700,13 @@ int main(void){
|
| 4699 | 4699 |
int i; |
| 4700 | 4700 |
s.spatial_decomposition_count=6; |
| 4701 | 4701 |
s.spatial_decomposition_type=1; |
| 4702 |
+ AVLFG prn; |
|
| 4703 |
+ |
|
| 4704 |
+ av_lfg_init(&prn, 1); |
|
| 4702 | 4705 |
|
| 4703 | 4706 |
printf("testing 5/3 DWT\n");
|
| 4704 | 4707 |
for(i=0; i<width*height; i++) |
| 4705 |
- buffer[0][i]= buffer[1][i]= random()%54321 - 12345; |
|
| 4708 |
+ buffer[0][i] = buffer[1][i] = av_lfg_get(&prn) % 54321 - 12345; |
|
| 4706 | 4709 |
|
| 4707 | 4710 |
ff_spatial_dwt(buffer[0], width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); |
| 4708 | 4711 |
ff_spatial_idwt(buffer[0], width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); |
| ... | ... |
@@ -4713,7 +4717,7 @@ int main(void){
|
| 4713 | 4713 |
printf("testing 9/7 DWT\n");
|
| 4714 | 4714 |
s.spatial_decomposition_type=0; |
| 4715 | 4715 |
for(i=0; i<width*height; i++) |
| 4716 |
- buffer[0][i]= buffer[1][i]= random()%54321 - 12345; |
|
| 4716 |
+ buffer[0][i] = buffer[1][i] = av_lfg_get(&prn) % 54321 - 12345; |
|
| 4717 | 4717 |
|
| 4718 | 4718 |
ff_spatial_dwt(buffer[0], width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); |
| 4719 | 4719 |
ff_spatial_idwt(buffer[0], width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); |
| ... | ... |
@@ -192,10 +192,9 @@ int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt) {
|
| 192 | 192 |
} |
| 193 | 193 |
|
| 194 | 194 |
#ifdef TEST |
| 195 |
+#include "lfg.h" |
|
| 195 | 196 |
#include "log.h" |
| 196 | 197 |
|
| 197 |
-#undef random |
|
| 198 |
- |
|
| 199 | 198 |
int main(void){
|
| 200 | 199 |
int i,j; |
| 201 | 200 |
AVAES ae, ad, b; |
| ... | ... |
@@ -209,10 +208,12 @@ int main(void){
|
| 209 | 209 |
{0x73, 0x22, 0x81, 0xc0, 0xa0, 0xaa, 0xb8, 0xf7, 0xa5, 0x4a, 0x0c, 0x67, 0xa0, 0xc4, 0x5e, 0xcf},
|
| 210 | 210 |
{0x6d, 0x25, 0x1e, 0x69, 0x44, 0xb0, 0x51, 0xe0, 0x4e, 0xaa, 0x6f, 0xb4, 0xdb, 0xf7, 0x84, 0x65}};
|
| 211 | 211 |
uint8_t temp[16]; |
| 212 |
+ AVLFG prn; |
|
| 212 | 213 |
|
| 213 | 214 |
av_aes_init(&ae, "PI=3.141592654..", 128, 0); |
| 214 | 215 |
av_aes_init(&ad, "PI=3.141592654..", 128, 1); |
| 215 | 216 |
av_log_set_level(AV_LOG_DEBUG); |
| 217 |
+ av_lfg_init(&prn, 1); |
|
| 216 | 218 |
|
| 217 | 219 |
for(i=0; i<2; i++){
|
| 218 | 220 |
av_aes_init(&b, rkey[i], 128, 1); |
| ... | ... |
@@ -224,7 +225,7 @@ int main(void){
|
| 224 | 224 |
|
| 225 | 225 |
for(i=0; i<10000; i++){
|
| 226 | 226 |
for(j=0; j<16; j++){
|
| 227 |
- pt[j]= random(); |
|
| 227 |
+ pt[j] = av_lfg_get(&prn); |
|
| 228 | 228 |
} |
| 229 | 229 |
{START_TIMER
|
| 230 | 230 |
av_aes_crypt(&ae, temp, pt, 1, NULL, 0); |
| ... | ... |
@@ -164,9 +164,9 @@ int ff_pca(PCA *pca, double *eigenvector, double *eigenvalue){
|
| 164 | 164 |
#ifdef TEST |
| 165 | 165 |
|
| 166 | 166 |
#undef printf |
| 167 |
-#undef random |
|
| 168 | 167 |
#include <stdio.h> |
| 169 | 168 |
#include <stdlib.h> |
| 169 |
+#include "lfg.h" |
|
| 170 | 170 |
|
| 171 | 171 |
int main(void){
|
| 172 | 172 |
PCA *pca; |
| ... | ... |
@@ -174,15 +174,18 @@ int main(void){
|
| 174 | 174 |
#define LEN 8 |
| 175 | 175 |
double eigenvector[LEN*LEN]; |
| 176 | 176 |
double eigenvalue[LEN]; |
| 177 |
+ AVLFG prn; |
|
| 178 |
+ |
|
| 179 |
+ av_lfg_init(&prn, 1); |
|
| 177 | 180 |
|
| 178 | 181 |
pca= ff_pca_init(LEN); |
| 179 | 182 |
|
| 180 | 183 |
for(i=0; i<9000000; i++){
|
| 181 | 184 |
double v[2*LEN+100]; |
| 182 | 185 |
double sum=0; |
| 183 |
- int pos= random()%LEN; |
|
| 184 |
- int v2= (random()%101) - 50; |
|
| 185 |
- v[0]= (random()%101) - 50; |
|
| 186 |
+ int pos = av_lfg_get(&prn) % LEN; |
|
| 187 |
+ int v2 = av_lfg_get(&prn) % 101 - 50; |
|
| 188 |
+ v[0] = av_lfg_get(&prn) % 101 - 50; |
|
| 186 | 189 |
for(j=1; j<8; j++){
|
| 187 | 190 |
if(j<=pos) v[j]= v[0]; |
| 188 | 191 |
else v[j]= v2; |
| ... | ... |
@@ -191,7 +194,7 @@ int main(void){
|
| 191 | 191 |
/* for(j=0; j<LEN; j++){
|
| 192 | 192 |
v[j] -= v[pos]; |
| 193 | 193 |
}*/ |
| 194 |
-// sum += random()%10; |
|
| 194 |
+// sum += av_lfg_get(&prn) % 10; |
|
| 195 | 195 |
/* for(j=0; j<LEN; j++){
|
| 196 | 196 |
v[j] -= sum/LEN; |
| 197 | 197 |
}*/ |
| ... | ... |
@@ -144,7 +144,9 @@ void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*f)(void *opaque, void |
| 144 | 144 |
#endif |
| 145 | 145 |
|
| 146 | 146 |
#ifdef TEST |
| 147 |
-#undef random |
|
| 147 |
+ |
|
| 148 |
+#include "lfg.h" |
|
| 149 |
+ |
|
| 148 | 150 |
static int check(AVTreeNode *t){
|
| 149 | 151 |
if(t){
|
| 150 | 152 |
int left= check(t->child[0]); |
| ... | ... |
@@ -179,9 +181,12 @@ int cmp(const void *a, const void *b){
|
| 179 | 179 |
int main(void){
|
| 180 | 180 |
int i,k; |
| 181 | 181 |
AVTreeNode *root= NULL, *node=NULL; |
| 182 |
+ AVLFG prn; |
|
| 183 |
+ |
|
| 184 |
+ av_lfg_init(&prn, 1); |
|
| 182 | 185 |
|
| 183 | 186 |
for(i=0; i<10000; i++){
|
| 184 |
- int j= (random()%86294); |
|
| 187 |
+ int j = av_lfg_get(&prn) % 86294; |
|
| 185 | 188 |
if(check(root) > 999){
|
| 186 | 189 |
av_log(NULL, AV_LOG_ERROR, "FATAL error %d\n", i); |
| 187 | 190 |
print(root, 0); |
| ... | ... |
@@ -192,7 +197,7 @@ int main(void){
|
| 192 | 192 |
node= av_mallocz(av_tree_node_size); |
| 193 | 193 |
av_tree_insert(&root, (void*)(j+1), cmp, &node); |
| 194 | 194 |
|
| 195 |
- j= (random()%86294); |
|
| 195 |
+ j = av_lfg_get(&prn) % 86294; |
|
| 196 | 196 |
{
|
| 197 | 197 |
AVTreeNode *node2=NULL; |
| 198 | 198 |
av_log(NULL, AV_LOG_ERROR, "removing %4d\n", j); |