///|
fn main {
let config = try! @fp.HashConfig::new()
let index = @idx.FingerprintIndex::new(config)
let track : @fp.AudioFingerprint = {
version: @fp.fingerprint_version,
frame_count: 256,
bin_count: 128,
config,
hashes: [
{
hash: 11UL,
anchor_frame: 100,
anchor_bin: 10,
delta_frames: 3,
target_bin: 12,
},
{
hash: 12UL,
anchor_frame: 110,
anchor_bin: 20,
delta_frames: 3,
target_bin: 22,
},
],
}
try! index.add_track(1, "demo-track", track)
let query : @fp.AudioFingerprint = {
version: @fp.fingerprint_version,
frame_count: 128,
bin_count: 128,
config,
hashes: [
{
hash: 11UL,
anchor_frame: 20,
anchor_bin: 10,
delta_frames: 3,
target_bin: 12,
},
{
hash: 12UL,
anchor_frame: 30,
anchor_bin: 20,
delta_frames: 3,
target_bin: 22,
},
],
}
let result = try! @matcher.match_fingerprint(
index,
query,
@matcher.MatchConfig::new(min_votes=2, min_confidence=0.5),
)
println("Matching example")
println("status: \{@matcher.status_label(result.status)}")
println("top_track: \{result.candidates[0].name}")
println("offset_frames: \{result.candidates[0].offset_frames}")
println("confidence: \{result.candidates[0].confidence}")
}