From 841212de52e0020ad8b066f72c8fb7431e1949fb Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 14 Apr 2026 23:06:49 +0200 Subject: [PATCH] Implement `FpFindContain` function --- transcoder/src/fingerprints_compare.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/transcoder/src/fingerprints_compare.go b/transcoder/src/fingerprints_compare.go index 72665169..0dc9ee8d 100644 --- a/transcoder/src/fingerprints_compare.go +++ b/transcoder/src/fingerprints_compare.go @@ -230,5 +230,20 @@ func FpFindOverlap(fp1 []uint32, fp2 []uint32) ([]Overlap, error) { } func FpFindContain(haystack []uint32, needle []uint32) (*Match, error) { - return nil, nil + offset := findBestOffset(haystack, needle) + if offset == nil || *offset < 0 || *offset+len(needle) < len(haystack) { + return nil, nil + } + + corr := segmentCorrelation(haystack[*offset:*offset+len(needle)], needle) + if corr < MatchThreshold { + return nil, nil + } + + accuracy := min(int(corr*100), 100) + return &Match{ + Start: samplesToSec(*offset), + Duration: samplesToSec(len(needle)), + Accuracy: accuracy, + }, nil }