@@ -74,6 +74,7 @@ int main(int argc, char* argv[]) try {
74
74
75
75
bool flipHorizontal = false ;
76
76
bool flipVertical = false ;
77
+ bool multipass = false ;
77
78
78
79
std::string vcam = " /dev/video1" ;
79
80
std::string ccam = " /dev/video0" ;
@@ -95,6 +96,8 @@ int main(int argc, char* argv[]) try {
95
96
flipHorizontal = !flipHorizontal;
96
97
} else if (args[arg] == " -V" ) {
97
98
flipVertical = !flipVertical;
99
+ } else if (args[arg] == " -M" ) {
100
+ multipass = !multipass;
98
101
} else if (args[arg] == " -v" ) {
99
102
if (hasArgument) {
100
103
vcam = args[++arg];
@@ -187,7 +190,7 @@ int main(int argc, char* argv[]) try {
187
190
fprintf (stderr, " \n " );
188
191
fprintf (stderr, " usage:\n " );
189
192
fprintf (stderr, " backscrub [-?] [-d] [-p] [-c <capture>] [-v <virtual>] [-w <width>] [-h <height>]\n " );
190
- fprintf (stderr, " [-t <threads>] [-b <background>] [-m <modell>] [-p <option:value>] [-H] [-V]\n " );
193
+ fprintf (stderr, " [-t <threads>] [-b <background>] [-m <modell>] [-p <option:value>] [-H] [-V] [-M] \n " );
191
194
fprintf (stderr, " \n " );
192
195
fprintf (stderr, " -? Display this usage information\n " );
193
196
fprintf (stderr, " -d Increase debug level\n " );
@@ -206,6 +209,7 @@ int main(int argc, char* argv[]) try {
206
209
fprintf (stderr, " -p bgblur:<strength> Blur the video background\n " );
207
210
fprintf (stderr, " -H Mirror the output horizontally\n " );
208
211
fprintf (stderr, " -V Mirror the output vertically\n " );
212
+ fprintf (stderr, " -M Activate multi-pass filtering (for aspect ratio mismatch)\n " );
209
213
exit (1 );
210
214
}
211
215
@@ -227,6 +231,7 @@ int main(int argc, char* argv[]) try {
227
231
printf (" height: %zu\n " , height);
228
232
printf (" flip_h: %s\n " , flipHorizontal ? " yes" : " no" );
229
233
printf (" flip_v: %s\n " , flipVertical ? " yes" : " no" );
234
+ printf (" multi: %s\n " , multipass ? " yes" : " no" );
230
235
printf (" threads:%zu\n " , threads);
231
236
printf (" back: %s\n " , s_backg ? s_backg.value ().c_str () : " (none)" );
232
237
printf (" model: %s\n\n " , s_model ? s_model.value ().c_str () : " (none)" );
@@ -296,7 +301,7 @@ int main(int argc, char* argv[]) try {
296
301
// copy new frame to buffer
297
302
cap.retrieve (raw);
298
303
ti.retrns = timestamp ();
299
- ai.set_input_frame (raw);
304
+ ai.set_input_frame (raw, multipass );
300
305
ti.copyns = timestamp ();
301
306
302
307
if (raw.rows == 0 || raw.cols == 0 )
@@ -416,6 +421,7 @@ int main(int argc, char* argv[]) try {
416
421
" f: toggle FPS display on/off" ,
417
422
" b: toggle background display on/off" ,
418
423
" m: toggle mask display on/off" ,
424
+ " M: toggle multi-pass processing on/off" ,
419
425
" ?: toggle this help text on/off"
420
426
};
421
427
@@ -485,6 +491,10 @@ int main(int argc, char* argv[]) try {
485
491
showMask = !showMask;
486
492
break ;
487
493
494
+ case ' M' :
495
+ multipass = !multipass;
496
+ break ;
497
+
488
498
case ' ?' :
489
499
showHelp = !showHelp;
490
500
break ;
0 commit comments