384 |
|
SET_DEFAULT_BINARY(); |
385 |
|
if (argc != 5) |
386 |
|
goto userr; |
387 |
< |
/* get frame range */ |
388 |
< |
switch (sscanf(argv[1], "%lf,%lf", &fstart, &fend)) { |
387 |
> |
/* get frame range & sampling */ |
388 |
> |
switch (sscanf(argv[1], "%lf,%lf/%d", &fstart, &fend, &nsamps)) { |
389 |
|
case 1: |
390 |
+ |
nsamps = 0; |
391 |
|
fend = fstart; |
392 |
|
break; |
393 |
|
case 2: |
394 |
+ |
nsamps = 0; |
395 |
+ |
/* fall through */ |
396 |
+ |
case 3: |
397 |
|
if (fend < fstart) |
398 |
|
goto userr; |
399 |
|
break; |
402 |
|
} |
403 |
|
if (fstart < 1) |
404 |
|
goto userr; |
405 |
< |
hdrspec = argv[2]; |
406 |
< |
zbfspec = argv[3]; |
403 |
< |
mvospec = argv[4]; |
404 |
< |
nsamps = (fend - fstart)*12.; |
405 |
> |
if (nsamps <= 0) |
406 |
> |
nsamps = (fend - fstart)*17.; |
407 |
|
if (nsamps) { |
408 |
+ |
if (nsamps > 100) nsamps = 100; |
409 |
|
fstep = (fend - fstart)/nsamps; |
410 |
|
} else { |
411 |
|
fstep = 1.; |
412 |
|
fstart -= .5; |
413 |
|
nsamps = 1; |
414 |
|
} |
415 |
+ |
hdrspec = argv[2]; |
416 |
+ |
zbfspec = argv[3]; |
417 |
+ |
mvospec = argv[4]; |
418 |
|
/* load and filter each subframe */ |
419 |
|
for (fcur = fstart + .5*fstep; fcur <= fend; fcur += fstep) |
420 |
|
addframe(fcur); |