On Wed, May 29, 2024 at 02:06:07PM +0200, Gerion Entrup wrote: > Actually, the jaccard distance is defined as D = 1 - intersect / union. > Additionally, the distance value is compared against a constant that > must be between 0 and 1, which is not the case here. Both facts together > has led to the fact, that the function always returned a matching course > signature. To leave the constant intact and to avoid floating point > computation, this commit multiplies with 1 << 16 making the constant > effectively 9000 / (1<<16) =~ 0.14. > > Reported-by: Sachin Tilloo <sachin.til...@gmail.com> > Reviewed-by: Sachin Tilloo <sachin.til...@gmail.com> > Tested-by: Sachin Tilloo <sachin.til...@gmail.com> > --- > libavfilter/signature_lookup.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/libavfilter/signature_lookup.c b/libavfilter/signature_lookup.c > index b39a3e225b..b90b63f3f2 100644 > --- a/libavfilter/signature_lookup.c > +++ b/libavfilter/signature_lookup.c > @@ -127,9 +127,10 @@ static int get_jaccarddist(SignatureContext *sc, > CoarseSignature *first, CoarseS > { > int jaccarddist, i, composdist = 0, cwthcount = 0; > for (i = 0; i < 5; i++) { > - if ((jaccarddist = intersection_word(first->data[i], > second->data[i])) > 0) { > + if ((jaccarddist = (1 << 16) * intersection_word(first->data[i], > second->data[i])) > 0) { > jaccarddist /= FFMAX(union_word(first->data[i], > second->data[i]), 1); > } > + jaccarddist = (1 << 16) - jaccarddist; > if (jaccarddist >= sc->thworddist) { > if (++cwthcount > 2) { > /* more than half (5/2) of distances are too wide */
this seems not to apply, maybe iam missing something ? Applying: libavfilter/signature_lookup: fix jaccard distance Using index info to reconstruct a base tree... M libavfilter/signature_lookup.c Falling back to patching base and 3-way merge... Auto-merging libavfilter/signature_lookup.c CONFLICT (content): Merge conflict in libavfilter/signature_lookup.c error: Failed to merge in the changes. [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Homeopathy is like voting while filling the ballot out with transparent ink. Sometimes the outcome one wanted occurs. Rarely its worse than filling out a ballot properly.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".