mirror of
https://github.com/qrtc/ffmpeg-dev-go.git
synced 2025-09-26 20:01:22 +08:00
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
// Copyright (c) 2023 QRTC. All rights reserved.
|
|
// Use of this source code is governed by a MIT
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package ffmpeg
|
|
|
|
/*
|
|
#include <libavutil/murmur3.h>
|
|
*/
|
|
import "C"
|
|
|
|
// AVMurMur3
|
|
type AVMurMur3 C.struct_AVMurMur3
|
|
|
|
// AvMurmur3Alloc allocates an AVMurMur3 hash context.
|
|
func AvMurmur3Alloc() *AVMurMur3 {
|
|
return (*AVMurMur3)(C.av_murmur3_alloc())
|
|
}
|
|
|
|
// AvMurmur3InitSeeded initializes or reinitializes an AVMurMur3 hash context with a seed.
|
|
func AvMurmur3InitSeeded(c *AVMurMur3, seed uint64) {
|
|
C.av_murmur3_init_seeded((*C.struct_AVMurMur3)(c), (C.uint64_t)(seed))
|
|
}
|
|
|
|
// AvMurmur3Init initializes or reinitializes an AVMurMur3 hash context.
|
|
func AvMurmur3Init(c *AVMurMur3) {
|
|
C.av_murmur3_init((*C.struct_AVMurMur3)(c))
|
|
}
|
|
|
|
// AvMurmur3Update updates hash context with new data.
|
|
func AvMurmur3Update(c *AVMurMur3, src *uint8, len uintptr) {
|
|
C.av_murmur3_update((*C.struct_AVMurMur3)(c), (*C.uint8_t)(src), (C.size_t)(len))
|
|
}
|
|
|
|
// AvMurmur3Final finishes hashing and output digest value.
|
|
func AvMurmur3Final(c *AVMurMur3, dst []uint8) {
|
|
if len(dst) < 16 {
|
|
panic("dst len < 16")
|
|
}
|
|
C.av_murmur3_final((*C.struct_AVMurMur3)(c), (*C.uint8_t)(&dst[0]))
|
|
}
|