Line data Source code
1 : /* 2 : * Copyright (c) 2017, Alliance for Open Media. All rights reserved 3 : * 4 : * This source code is subject to the terms of the BSD 2 Clause License and 5 : * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 : * was not distributed with this source code in the LICENSE file, you can 7 : * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8 : * Media Patent License 1.0 was not distributed with this source code in the 9 : * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10 : */ 11 : 12 : #ifndef AOM_AV1_ENCODER_RANDOM_H_ 13 : #define AOM_AV1_ENCODER_RANDOM_H_ 14 : 15 : #ifdef __cplusplus 16 : extern "C" { 17 : #endif 18 : 19 : // Generate a random number in the range [0, 32768). 20 6780 : static INLINE unsigned int lcg_rand16(unsigned int *state) { 21 6780 : *state = (unsigned int)(*state * 1103515245ULL + 12345); 22 6780 : return *state / 65536 % 32768; 23 : } 24 : 25 : #ifdef __cplusplus 26 : } // extern "C" 27 : #endif 28 : 29 : #endif // AOM_AV1_ENCODER_RANDOM_H_