* It has to to take into account that probably the stream was not started at
* the beginning of the file, that the clock between the server and the client
* host may differ and that playback of the stream was delayed, e.g. because
- * the prebuffer filter is used in the filter chain of the given slot.
+ * the prebuffer filter is used in the filter configuration of the given slot.
*
* If no writer is active in the given slot, or \a slot_num is negative
* (indicating that para_audiod runs in standby mode), an approximation based
ret = btr_node_status(st->btrn, 0, BTR_NT_LEAF);
if (ret > 0)
goto min_delay;
- if (!st->ct)
+ if (st->ct && audiod_status == AUDIOD_OFF)
+ goto min_delay;
+ if (!st->ct && audiod_status != AUDIOD_OFF)
sched_request_barrier_or_min_delay(&st->restart_barrier, s);
if (cafn >= 0)
sched_request_barrier(&afi[cafn].restart_barrier, s);
+ /*
+ * If para_server is playing we'd like to have a smooth time display
+ * even if we are running in standby mode. So we request a timeout that
+ * expires at the next full second.
+ */
+ if (stat_task->vss_status & VSS_STATUS_FLAG_PLAYING)
+ sched_request_timeout_ms(1000 - now->tv_usec / 1000, s);
return;
min_delay:
sched_min_delay(s);