| FFmpeg
    | 
| Files | |
| file | murmur3.h | 
| Functions | |
| struct AVMurMur3 * | av_murmur3_alloc (void) | 
| Allocate an AVMurMur3 hash context.  More... | |
| void | av_murmur3_init_seeded (struct AVMurMur3 *c, uint64_t seed) | 
| Initialize or reinitialize an AVMurMur3 hash context with a seed.  More... | |
| void | av_murmur3_init (struct AVMurMur3 *c) | 
| Initialize or reinitialize an AVMurMur3 hash context.  More... | |
| void | av_murmur3_update (struct AVMurMur3 *c, const uint8_t *src, size_t len) | 
| Update hash context with new data.  More... | |
| void | av_murmur3_final (struct AVMurMur3 *c, uint8_t dst[16]) | 
| Finish hashing and output digest value.  More... | |
MurmurHash3 hash function implementation.
MurmurHash3 is a non-cryptographic hash function, of which three incompatible versions were created by its inventor Austin Appleby:
FFmpeg only implements the last variant: 128-bit output designed for 64-bit platforms. Even though the hash function was designed for 64-bit platforms, the function in reality works on 32-bit systems too, only with reduced performance.
By design, MurmurHash3 requires a seed to operate. In response to this, libavutil provides two functions for hash initiation, one that requires a seed (av_murmur3_init_seeded()) and one that uses a fixed arbitrary integer as the seed, and therefore does not (av_murmur3_init()).
To make hashes comparable, you should provide the same seed for all calls to this hash function – if you are supplying one yourself, that is.
| struct AVMurMur3* av_murmur3_alloc | ( | void | ) | 
Allocate an AVMurMur3 hash context.
NULL in case of error Definition at line 34 of file murmur3.c.
Referenced by av_hash_alloc(), and main().
| void av_murmur3_init_seeded | ( | struct AVMurMur3 * | c, | 
| uint64_t | seed | ||
| ) | 
Initialize or reinitialize an AVMurMur3 hash context with a seed.
| [out] | c | Hash context | 
| [in] | seed | Random seed | 
Definition at line 39 of file murmur3.c.
Referenced by av_murmur3_init(), and main().
| void av_murmur3_init | ( | struct AVMurMur3 * | c | ) | 
Initialize or reinitialize an AVMurMur3 hash context.
Equivalent to av_murmur3_init_seeded() with a built-in seed.
| [out] | c | Hash context | 
Definition at line 45 of file murmur3.c.
Referenced by av_hash_init(), and main().
| void av_murmur3_update | ( | struct AVMurMur3 * | c, | 
| const uint8_t * | src, | ||
| size_t | len | ||
| ) | 
Update hash context with new data.
| [out] | c | Hash context | 
| [in] | src | Input data to update hash with | 
| [in] | len | Number of bytes to read from src | 
Definition at line 94 of file murmur3.c.
Referenced by av_hash_update(), and main().
| void av_murmur3_final | ( | struct AVMurMur3 * | c, | 
| uint8_t | dst[16] | ||
| ) | 
Finish hashing and output digest value.
| [in,out] | c | Hash context | 
| [out] | dst | Buffer where output digest value is stored | 
Definition at line 143 of file murmur3.c.
Referenced by av_hash_final(), and main().
 1.8.17
 1.8.17