return;
for (i = 0; i < a->num_filters; i++) {
struct filter_node *fn = s->fns + i;
- struct filter *f = filters + fn->filter_num;
+ struct filter *f;
+ if (!fn)
+ continue;
+ f = filters + fn->filter_num;
f->close(fn);
btr_free_node(fn->btrn);
}
* this period begins to avoid restarting the receiver that
* belongs to the file just completed.
*/
- if (stat_task->server_stream_start.tv_sec != 0)
+ if (stat_task->server_stream_start.tv_sec != 0) {
sched_request_timeout_ms(100, s);
+ return -1;
+ }
}
if (tv_diff(now, &afi[cafn].restart_barrier, &diff) < 0) {
if (tv_diff(&s->timeout, &diff, NULL) > 0)
- s->timeout = diff;
+ sched_request_timeout(&diff, s);
else
sched_min_delay(s);
return -1;