@@ -62,7 +62,7 @@ public async Task RealtimeQueryShouldMatchOnlySelectedMetaFieldsFilters()
6262 . From ( SimulateRealtimeAudioQueryData ( data , jitterLength : 0 ) )
6363 . WithRealtimeQueryConfig ( config =>
6464 {
65- config . ResultEntryFilter = new TrackMatchLengthEntryFilter ( 15d ) ;
65+ config . ResultEntryFilter = new TrackCoverageLengthEntryFilter ( 15d , waitTillCompletion : false ) ;
6666 config . SuccessCallback = _ => Interlocked . Increment ( ref foundWithWrongClusters ) ;
6767 config . YesMetaFieldsFilter = new Dictionary < string , string > { { "country" , "CANADA" } } ;
6868 return config ;
@@ -75,7 +75,7 @@ public async Task RealtimeQueryShouldMatchOnlySelectedMetaFieldsFilters()
7575 . From ( SimulateRealtimeAudioQueryData ( data , jitterLength : 0 ) )
7676 . WithRealtimeQueryConfig ( config =>
7777 {
78- config . ResultEntryFilter = new TrackMatchLengthEntryFilter ( 15d ) ;
78+ config . ResultEntryFilter = new TrackCoverageLengthEntryFilter ( 15d , waitTillCompletion : false ) ;
7979 config . SuccessCallback = _ => Interlocked . Increment ( ref foundWithClusters ) ;
8080 config . YesMetaFieldsFilter = new Dictionary < string , string > { { "country" , "USA" } } ;
8181 return config ;
@@ -160,7 +160,7 @@ await QueryCommandBuilder.Instance
160160 . From ( collection )
161161 . WithRealtimeQueryConfig ( config =>
162162 {
163- config . ResultEntryFilter = new TrackRelativeCoverageLengthEntryFilter ( 0.2d , waitTillCompletion : true ) ;
163+ config . ResultEntryFilter = new TrackRelativeCoverageEntryFilter ( 0.2d , waitTillCompletion : true ) ;
164164 config . QueryConfiguration . Audio . Stride = new IncrementalStaticStride ( staticStride ) ;
165165 config . SuccessCallback = _ =>
166166 {
@@ -237,8 +237,11 @@ public async Task ShouldQueryInRealtime()
237237 {
238238 config . QueryConfiguration . Audio . Stride = new IncrementalRandomStride ( 256 , 512 ) ;
239239 config . QueryConfiguration . Audio . PermittedGap = 2 ;
240- config . ResultEntryFilter = new TrackMatchLengthEntryFilter ( queryMatchLength ) ;
241- config . OngoingResultEntryFilter = new OngoingRealtimeResultEntryFilter ( minCoverage : 0.2d , minTrackLength : 1d ) ;
240+ config . ResultEntryFilter = new TrackCoverageLengthEntryFilter ( queryMatchLength , waitTillCompletion : false ) ;
241+ config . OngoingResultEntryFilter = new ChainedRealtimeEntryFilter ( [
242+ new TrackRelativeCoverageEntryFilter ( 0.2d , waitTillCompletion : false ) ,
243+ new TrackCoverageLengthEntryFilter ( 1d , waitTillCompletion : false )
244+ ] ) ;
242245 config . SuccessCallback = result =>
243246 {
244247 foreach ( var ( entry , _) in result . ResultEntries )
@@ -325,15 +328,16 @@ public async Task ShouldNotLoseAudioSamplesInCaseIfExceptionIsThrown()
325328 var collection = SimulateRealtimeAudioQueryData ( data , jitterLength ) ;
326329 var offlineStorage = new OfflineStorage ( Path . GetTempPath ( ) ) ;
327330 var restoreCalled = new bool [ 1 ] ;
331+ var loggerFactory = new NullLoggerFactory ( ) ;
328332 double processed = await new RealtimeQueryCommand ( FingerprintCommandBuilder . Instance , new QueryCommandBuilder ( FingerprintCommandBuilder . Instance ,
329- new FaultyQueryService ( faultyCounts : trackCount + jitterChunks - 1 , QueryFingerprintService . Instance ) , new NullLoggerFactory ( ) ) , new NullLoggerFactory ( ) )
333+ new FaultyQueryService ( faultyCounts : trackCount + jitterChunks - 1 , QueryFingerprintService . Instance ) , loggerFactory ) , loggerFactory )
330334 . From ( collection )
331335 . WithRealtimeQueryConfig ( config =>
332336 {
333337 config . SuccessCallback = entry => resultEntries . AddRange ( entry . ResultEntries ) ;
334338 config . DidNotPassFilterCallback = _ => Interlocked . Increment ( ref didNotPassThreshold ) ;
335339 config . ErrorCallback = ( _ , _ ) => Interlocked . Increment ( ref errored ) ;
336- config . ResultEntryFilter = new TrackRelativeCoverageLengthEntryFilter ( 0.4 , waitTillCompletion : true ) ;
340+ config . ResultEntryFilter = new TrackRelativeCoverageEntryFilter ( 0.4 , waitTillCompletion : true ) ;
337341 config . RestoredAfterErrorCallback = ( ) => restoreCalled [ 0 ] = true ;
338342 config . OfflineStorage = offlineStorage ; // store the other half of the fingerprints in the downtime hashes storage
339343 config . DelayStrategy = new NoDelayStrategy ( ) ;
@@ -444,7 +448,7 @@ await QueryCommandBuilder.Instance.BuildRealtimeQueryCommand()
444448 . WithRealtimeQueryConfig ( config =>
445449 {
446450 config . SuccessCallback = entry => entries . AddRange ( entry . ResultEntries ) ;
447- config . ResultEntryFilter = new TrackRelativeCoverageLengthEntryFilter ( 0.8d ) ;
451+ config . ResultEntryFilter = new TrackRelativeCoverageEntryFilter ( 0.8d , waitTillCompletion : true ) ;
448452 config . QueryConfiguration . Audio . Stride = new IncrementalStaticStride ( 2048 ) ;
449453 return config ;
450454 } )
@@ -497,7 +501,7 @@ await QueryCommandBuilder.Instance.BuildRealtimeQueryCommand()
497501 . WithRealtimeQueryConfig ( config =>
498502 {
499503 config . QueryConfiguration . Audio . Stride = new IncrementalRandomStride ( 256 , 512 , seed : 123 ) ;
500- config . ResultEntryFilter = new TrackRelativeCoverageLengthEntryFilter ( 0.5 , waitTillCompletion : true ) ;
504+ config . ResultEntryFilter = new TrackRelativeCoverageEntryFilter ( 0.5 , waitTillCompletion : true ) ;
501505 config . SuccessCallback = _ => success . AddRange ( _ . ResultEntries ) ;
502506 config . DidNotPassFilterCallback = _ => didNotPass . AddRange ( _ . ResultEntries ) ;
503507 return config ;
@@ -591,14 +595,18 @@ public async Task ShouldQueryBothAudioAndVideo()
591595
592596 var successMatches = new List < AVResultEntry > ( ) ;
593597 var didNotGetToContiguousQueryMatchLengthMatch = new List < AVResultEntry > ( ) ;
594- double processed = await QueryCommandBuilder . Instance
598+ double processed = await QueryCommandBuilder
599+ . Instance
595600 . BuildRealtimeQueryCommand ( )
596601 . From ( collection )
597602 . WithRealtimeQueryConfig ( config =>
598603 {
599604 config . QueryConfiguration . Audio . Stride = new IncrementalRandomStride ( 256 , 512 , seed : 123 ) ;
600605 config . ResultEntryFilter = new CompletedRealtimeMatchResultEntryFilter ( ) ;
601- config . OngoingResultEntryFilter = new OngoingRealtimeResultEntryFilter ( minCoverage : 0.2d , minTrackLength : 1d ) ;
606+ config . OngoingResultEntryFilter = new ChainedRealtimeEntryFilter ( [
607+ new TrackRelativeCoverageEntryFilter ( 0.2d , waitTillCompletion : false ) ,
608+ new TrackCoverageLengthEntryFilter ( 2d , waitTillCompletion : false )
609+ ] ) ;
602610 config . SuccessCallback = result =>
603611 {
604612 successCallbackCalls ++ ;
@@ -610,7 +618,11 @@ public async Task ShouldQueryBothAudioAndVideo()
610618 didNotGetToContiguousQueryMatchLengthMatch . AddRange ( result . ResultEntries ) ;
611619 } ;
612620
613- config . OngoingCallback = _ => { Interlocked . Add ( ref ongoingCalls , _ . Count ( ) ) ; } ;
621+ config . OngoingCallback = _ =>
622+ {
623+ Interlocked . Add ( ref ongoingCalls , _ . Count ( ) ) ;
624+ } ;
625+
614626 config . ErrorCallback = ( error , _ ) => throw error ;
615627 return config ;
616628 } )
@@ -739,7 +751,7 @@ await QueryCommandBuilder.Instance
739751 . WithRealtimeQueryConfig ( config =>
740752 {
741753 config . QueryConfiguration . Audio . Stride = new IncrementalRandomStride ( 256 , 512 , seed : 123 ) ;
742- config . ResultEntryFilter = new TrackRelativeCoverageLengthEntryFilter ( coverage : 0.2 , waitTillCompletion : true ) ;
754+ config . ResultEntryFilter = new TrackRelativeCoverageEntryFilter ( coverage : 0.2 , waitTillCompletion : true ) ;
743755 config . SuccessCallback = _ => success . AddRange ( _ . ResultEntries ) ;
744756 config . DidNotPassFilterCallback = _ => didNotPass . AddRange ( _ . ResultEntries ) ;
745757 config . ErrorCallback = ( e , _ ) => logger . LogError ( e , "An error occured while querying stream" ) ;
0 commit comments