FFmpeg
|
MurmurHash3 hash function implementation. More...
Files | |
file | murmur3.h |
Public header for MurmurHash3 hash function implementation. | |
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, int 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.
Allocate an AVMurMur3 hash context.
NULL
in case of error Definition at line 32 of file murmur3.c.
Referenced by av_hash_alloc(), and main().
Initialize or reinitialize an AVMurMur3 hash context with a seed.
[out] | c | Hash context |
[in] | seed | Random seed |
Definition at line 37 of file murmur3.c.
Referenced by av_murmur3_init(), and main().
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 43 of file murmur3.c.
Referenced by av_hash_init(), and main().
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 92 of file murmur3.c.
Referenced by av_hash_update(), and main().