diff options
author | Martin Storsjö <martin@martin.st> | 2025-02-05 23:59:34 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2025-02-13 11:41:47 +0200 |
commit | b053f1173d979ce6267ba440ae9a6f6f44285f0c (patch) | |
tree | 6d65898b4f91bc739bf62b3f8e0f98e2e0da5728 /libavutil/random_seed.c | |
parent | dc7964a862890d58072ee9ca711b4b38eda5a209 (diff) | |
download | ffmpeg-b053f1173d979ce6267ba440ae9a6f6f44285f0c.tar.gz |
random_seed: Reorder if clauses for gathering entropy
Make it easier to add more cases.
This should be a pure refactoring, with no functional changes.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavutil/random_seed.c')
-rw-r--r-- | libavutil/random_seed.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libavutil/random_seed.c b/libavutil/random_seed.c index 8a4e4f1fc0..ca084b40da 100644 --- a/libavutil/random_seed.c +++ b/libavutil/random_seed.c @@ -98,17 +98,20 @@ static uint32_t get_generic_seed(void) for (;;) { clock_t t = clock(); - if (last_t + 2*last_td + (CLOCKS_PER_SEC > 1000) >= t) { - last_td = t - last_t; - buffer[i & 511] = 1664525*buffer[i & 511] + 1013904223 + (last_td % 3294638521U); + int incremented_i = 0; + int cur_td = t - last_t; + if (last_t + 2*last_td + (CLOCKS_PER_SEC > 1000) < t) { + buffer[++i & 511] += cur_td % 3294638521U; + incremented_i = 1; } else { - last_td = t - last_t; - buffer[++i & 511] += last_td % 3294638521U; - if ((t - init_t) >= CLOCKS_PER_SEC>>5) - if (last_i && i - last_i > 4 || i - last_i > 64 || TEST && i - last_i > 8) - break; + buffer[i & 511] = 1664525*buffer[i & 511] + 1013904223 + (cur_td % 3294638521U); + } + if (incremented_i && (t - init_t) >= CLOCKS_PER_SEC>>5) { + if (last_i && i - last_i > 4 || i - last_i > 64 || TEST && i - last_i > 8) + break; } last_t = t; + last_td = cur_td; if (!init_t) init_t = t; } |