FFmpeg
Data Structures | Macros | Functions | Variables
murmur3.c File Reference
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "mem.h"
#include "intreadwrite.h"
#include "murmur3.h"

Go to the source code of this file.

Data Structures

struct  AVMurMur3
 

Macros

#define ROT(a, b)   (((a) << (b)) | ((a) >> (64 - (b))))
 

Functions

AVMurMur3av_murmur3_alloc (void)
 Allocate an AVMurMur3 hash context. More...
 
void av_murmur3_init_seeded (AVMurMur3 *c, uint64_t seed)
 Initialize or reinitialize an AVMurMur3 hash context with a seed. More...
 
void av_murmur3_init (AVMurMur3 *c)
 Initialize or reinitialize an AVMurMur3 hash context. More...
 
static uint64_t get_k1 (const uint8_t *src)
 
static uint64_t get_k2 (const uint8_t *src)
 
static uint64_t update_h1 (uint64_t k, uint64_t h1, uint64_t h2)
 
static uint64_t update_h2 (uint64_t k, uint64_t h1, uint64_t h2)
 
void av_murmur3_update (AVMurMur3 *c, const uint8_t *src, size_t len)
 Update hash context with new data. More...
 
static uint64_t fmix (uint64_t k)
 
void av_murmur3_final (AVMurMur3 *c, uint8_t dst[16])
 Finish hashing and output digest value. More...
 

Variables

static const uint64_t c1 = UINT64_C(0x87c37b91114253d5)
 
static const uint64_t c2 = UINT64_C(0x4cf5ad432745937f)
 

Macro Definition Documentation

◆ ROT

#define ROT (   a,
  b 
)    (((a) << (b)) | ((a) >> (64 - (b))))

Definition at line 55 of file murmur3.c.

Function Documentation

◆ get_k1()

static uint64_t get_k1 ( const uint8_t *  src)
inlinestatic

Definition at line 57 of file murmur3.c.

Referenced by av_murmur3_final(), and av_murmur3_update().

◆ get_k2()

static uint64_t get_k2 ( const uint8_t *  src)
inlinestatic

Definition at line 66 of file murmur3.c.

Referenced by av_murmur3_final(), and av_murmur3_update().

◆ update_h1()

static uint64_t update_h1 ( uint64_t  k,
uint64_t  h1,
uint64_t  h2 
)
inlinestatic

Definition at line 75 of file murmur3.c.

Referenced by av_murmur3_update().

◆ update_h2()

static uint64_t update_h2 ( uint64_t  k,
uint64_t  h1,
uint64_t  h2 
)
inlinestatic

Definition at line 85 of file murmur3.c.

Referenced by av_murmur3_update().

◆ fmix()

static uint64_t fmix ( uint64_t  k)
inlinestatic

Definition at line 134 of file murmur3.c.

Referenced by av_murmur3_final().

Variable Documentation

◆ c1

const uint64_t c1 = UINT64_C(0x87c37b91114253d5)
static

◆ c2

const uint64_t c2 = UINT64_C(0x4cf5ad432745937f)
static

Definition at line 53 of file murmur3.c.

Referenced by acolor(), acolor16(), affine_merge_const1(), affine_merge_const3(), affine_merge_const4(), affine_merge_const6(), affine_merge_const_candidates(), apply_complex_stereo(), apply_intensity_stereo(), av_strcasecmp(), av_strncasecmp(), bl16_c1_avg_col(), bl16_decode_1(), bl16_decode_7(), chroma_diff(), cmp_pal_entry(), codec2_read_packet(), codec2raw_read_header(), color(), color16(), compare_fields(), complex_stereo_downmix_cur(), complex_stereo_downmix_prev(), decompress_68(), decorrelate(), ff_color_equal(), ff_put_no_rnd_pixels_l2_msa(), ff_sws_init_single_context(), ff_vp3_h_loop_filter_msa(), ff_vp3_idct_dc_add_msa(), ff_vp3_v_loop_filter_msa(), ff_vp9_adapt_probs(), fill_picture_rgb(), filter16_kirsch(), filter_3x3(), filter_kirsch(), filter_prewitt(), filter_scharr(), filter_sobel(), get_k1(), get_k2(), get_ssim(), idct4col_add(), idct4col_put(), idct4row(), idct_msa(), idct_row(), init_gaussian_filter(), init_legacy_subpass(), interp_2px(), interp_3px(), is_same3(), is_same3_16(), is_same4(), is_same4_16(), jxl_u32(), libcodec2_close(), libcodec2_decode(), libcodec2_encode(), libcodec2_init_common(), libcodec2_init_encoder(), mode05(), mode06(), mode07(), mode08(), multicomb(), next_input(), next_output(), old_codec37(), opts_equal(), process_slice_uyvy422(), process_slice_yuv420p(), process_slice_yuv422p(), process_slice_yuv444p(), ps_tableinit(), qpel_motion_search(), reverse_matrixing(), scc_read_header(), trc_smpte_st2084(), trc_smpte_st2084_inv(), and urldecode().